
|
If you were logged in you would be able to see more operations.
|
|
|
Since I use maven (1.0b8 or so) up to now (1.0) I observe that the JCoverage plugin does produce wrong results for inner/anonymous classes. I.e. I have got a class called ClassOne, which has an anonymouls inner class. The two classes are displayed in the coverage report as ClassOnewith 44% and ClassOne$1 with 0% tested, which is correct. The underlining reference to the html-file is in both cases the same. However, the file displays only the coverage of the inner class, the outer class does not contain any counts, red or green lines.
I doublechecked whether the coverage.xml file contains the corresponding values, which it does. So it seems to be a problem of the plugin itself.
|
|
Description
|
Since I use maven (1.0b8 or so) up to now (1.0) I observe that the JCoverage plugin does produce wrong results for inner/anonymous classes. I.e. I have got a class called ClassOne, which has an anonymouls inner class. The two classes are displayed in the coverage report as ClassOnewith 44% and ClassOne$1 with 0% tested, which is correct. The underlining reference to the html-file is in both cases the same. However, the file displays only the coverage of the inner class, the outer class does not contain any counts, red or green lines.
I doublechecked whether the coverage.xml file contains the corresponding values, which it does. So it seems to be a problem of the plugin itself. |
Show » |
Sort Order:
made changes - 23/Jan/05 02:05 PM
| Field |
Original Value |
New Value |
|
Attachment
|
|
JCoveragePatch.txt
[ 13860
]
|
made changes - 26/Jan/05 05:23 PM
|
Resolution
|
|
Fixed
[ 1
]
|
|
Status
|
Open
[ 1
]
|
Closed
[ 6
]
|
|
Fix Version/s
|
|
1.0.10
[ 11470
]
|
|
I'm not smart enough to set up a development environment for maven plugins, but I believe the following changes to CoverageReport.java will do the trick:
In coverage.xml, you see
<coverage src="...
<class name="org.mydomain.MyClass$InnerClass0">
<file name="org/mydomain/MyClass.java">
<line ...
</class>
<class name="org.mydomain.MyClass$InnerClass1">
<file name="org/mydomain/MyClass.java">
<line ...
</class>
<class name="org.mydomain.MyClass">
<file name="org/mydomain/MyClass.java">
<line ...
</class>
But all three html reports are written to a file org/mydomain/MyClass.html.
At line numbers 283, 334, 357, and 367-375 in CoverageReport.java a file name based on Clazz.getName() instead of Clazz.getFile() should be created, e.g.
org/mydomain/MyClass$InnerClass0.html
org/mydomain/MyClass$InnerClass1.html
org/mydomain/MyClass.html
I'll leave the simple code fix to someone who knows how to build and deploy maven plugins.