Usage
My test run finishes but I don't see any results!
This can have a number of reasons:
Is there a way to exclude (getter and setter) methods
from the evaluation?
There is no way to explicitly exclude specific
code from evaluation. However, Steven Grimm wrote a class
that automatically tests getters and setters. Testing code is better than
ignoring untested code!
Does Coverlipse provide an update site?
Yes. It's located at http://coverlipse.sf.net/update
Problems
java.lang.Class.getPackage() returns null when running a
test with Coverlipse. Normal JUnit tests work fine.
This is the contract of java.lang.Class.getPackage(): "Null
is returned if no package object was created by the class loader of this
class." Thanks to Sun for that.
Here's the workaround code: Instead of SomeClass.getPackage().getName() use getpkg(SomeClass) where getpkg is as follows: public static String getpkg(Class cl){ String clname = cl.getName(); int lastDot = clname.lastIndexOf('.'); return clname.substring(0,lastDot); } This workaround was suggested by Robert Herrmann.
I'm getting an error saying: Plug-in de.uka.ipd.coverage was unable to load class
de.uka.ipd.coverage.plugin.launcher.CoverageLaunchConfigurationDelegate
This happens with Eclipse 3.0 when trying to launch a
Coverlipse launch target before executing any other Coverlipse code.
This error can be prevented by executing any other Coverlipse action before executing the launch target, like showing a view or showing the launch target in the launch target management area.
Can I use Coverlipse on a project that uses Java Commons Logging?
Short answer: yes, since version 0.9.3.
Long answer: Java Commons Logging introduces a classloader hell that is discussed to some extend by the author of Log4J here and here. Thus, Coverlipse adds the Java Commons Logging package to those handled by the system classloader. This way, projects that use Java Commons Logging can be tested with Coverlipse. However, it is not possible to test the Java Commons Logging itself with coverage by Coverlipse.
Assertions don't seem to be executed, even when
enabled.
Again, this is a problem occurring only with Eclipse 3.0. Because of a Bug in
the used Eclipse 3.0 API, VM Arguments are not regarded with this
version. There is
no known workaround.
This problem does not occur with Eclipse 3.1
I have found a bug. What should I do?
Go to the Bugs
page at Sourceforge and check if your bug already has been
reported. If not, submit a new bug report or post the issue in the
forum.
The most important thing about a bug report is a description that allows the reproduction of the ill behaviour. So, if your bug is about the interaction in Eclipse, please describe what you are doing, expecting and what Coverlipse does instead. If your bug is about a JUnit test that fails where it shouldn't, please include at least a stack trace. In most cases this is not enough to reproduce the bug, so expect to be asked about example code. The best example code is a small Eclipse project with a class and a test that produces the ill behaviour. In all cases, make sure to include the version of Coverlipse and Eclipse you are using. Please do not report problems which are obviously due to classloader problems. Those won't be fixed individually and will get a general solution with the classloader independent mode. Common Questions
How can I contact you?
You mean, besides the email address at the bottom of each
page of the homepage, the Sourceforge email address, and the forum? You
could join #coverlipse at FreeNode. I'm online
there with the name arwate, when I'm online.
What code coverages does Coverlipse support?
For now, Coverlipse supports Block Coverage and All Uses
Coverage. Branch coverage is planned to come with Version 1.0.
Does Coverlipse support Java 5?
Yes, Coverlipse can also test Java 5 programs.
There are coverage tools a dime a dozen, even free
ones. What makes Coverlipse unique?
For one, it is an Eclipse plugin. It does not provide several hundred ways of
configurations like other coverage tools, it just uses the Eclipse way of
configuring JUnit tests and gives you direct feedback in the Java Editor and
specialized views.
Second, it can give you the data flow analysis All Uses Coverage. To my knowledge there is no other tool that can do data flow analysis on Unit Tests for the Java language.
Where can I get the source code?
The source code is in the Sourceforge CVS. Instructions
how to access it are available here.
How can I build Coverlipse myself from the CVS?
Licencing
How much does Coverlipse cost?
Nothing. It's open source! Namely, its distributed under the Common Public
Licence (CPL), thus you have the source code and you can modify the source code
and you can redistribute your modifications under the CPL.
Technical
How does Coverlipse work?
Coverlipse uses the Apache BCEL
toolkit to modify the Java Bytecode. During the test, all paths through a
method are recorded
on basic block granularity. After the test, the selected code coverage is
computed and shown to the user.
|