-
Bug
-
Resolution: Fixed
-
Major
-
None
Upgrading the junit-plugin from 1.11 to 1.12 fails with a parse error.
I guess this relates to "PR #35" because the skipped (Ignore attr.) test result file's "time" attr. is empty.
While the originator of the file (NUnit) should store a meaningful default (like "00:00:00" "0.0"), its up to the consumer to provide robust parsing, either by ignoring the "skipped" tests at all or by ignoring the empty string.
// Jenkins log stacktrace
[16:48:06.879] ERROR: Step ‘Publish NUnit test result report’ aborted due to exception:
[16:48:06.879] java.io.IOException: Failed to read C:\Jenkins\workspace\Foo\temporary-junit-reports\TEST-Bar.Common.Test.Utils.AccessorTest_13_2.xml
[16:48:06.879] at hudson.tasks.junit.TestResult.parse(TestResult.java:306)
[16:48:06.879] at hudson.tasks.junit.TestResult.parsePossiblyEmpty(TestResult.java:244)
[16:48:06.879] at hudson.tasks.junit.TestResult.parse(TestResult.java:175)
[16:48:06.879] at hudson.tasks.junit.TestResult.parse(TestResult.java:154)
[16:48:06.879] at hudson.tasks.junit.TestResult.<init>(TestResult.java:126)
[16:48:06.879] at hudson.plugins.nunit.NUnitPublisher$1.invoke(NUnitPublisher.java:243)
[16:48:06.879] at hudson.plugins.nunit.NUnitPublisher$1.invoke(NUnitPublisher.java:226)
[16:48:06.879] at hudson.FilePath.act(FilePath.java:990)
[16:48:06.879] at hudson.FilePath.act(FilePath.java:968)
[16:48:06.879] at hudson.plugins.nunit.NUnitPublisher.getTestResult(NUnitPublisher.java:226)
[16:48:06.879] at hudson.plugins.nunit.NUnitPublisher.recordTestResult(NUnitPublisher.java:189)
[16:48:06.879] at hudson.plugins.nunit.NUnitPublisher.perform(NUnitPublisher.java:152)
[16:48:06.879] at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
[16:48:06.879] at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
[16:48:06.879] at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723)
[16:48:06.879] at hudson.model.Build$BuildExecution.post2(Build.java:185)
[16:48:06.879] at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668)
[16:48:06.879] at hudson.model.Run.execute(Run.java:1763)
[16:48:06.879] at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
[16:48:06.879] at hudson.model.ResourceController.execute(ResourceController.java:98)
[16:48:06.879] at hudson.model.Executor.run(Executor.java:410)
[16:48:06.879] Caused by: java.lang.NumberFormatException: empty String
[16:48:06.879] at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
[16:48:06.879] at sun.misc.FloatingDecimal.parseFloat(Unknown Source)
[16:48:06.879] at java.lang.Float.parseFloat(Unknown Source)
[16:48:06.879] at hudson.tasks.junit.SuiteResult.<init>(SuiteResult.java:170)
[16:48:06.879] at hudson.tasks.junit.SuiteResult.parseSuite(SuiteResult.java:144)
[16:48:06.879] at hudson.tasks.junit.SuiteResult.parse(SuiteResult.java:129)
[16:48:06.879] at hudson.tasks.junit.TestResult.parse(TestResult.java:301)
[16:48:06.879] ... 20 more
// UnitTest.result file
<?xml version="1.0" encoding="UTF-8"?><testsuite errors="0" failures="0" name="Foo.Common.Test.Utils.AccessorTest" skipped="1" tests="1" time="">
<testcase classname="Foo.Common.Test.Utils.AccessorTest" name="InternalStaticMethod_DirectAccess()">
<skipped message="Assembly containing class to access is not the use case."/>
</testcase>
</testsuite>
- links to
Same problem here: