2016-04-25 4 views
1

Wir haben eine Jenkins-Installation und einige Projekte, die von NUnit getestet werden. Dies funktioniert gut und es schreibt eine NUnit-Ergebnis-XML-Datei. Dann haben wir einen Post-Build-Schritt "NUnit-Testergebnisbericht veröffentlichen". Aber seit Freitag produziert es diesen Fehler:Jenkins CI: 'NumberFormatException: leere Zeichenfolge'

Recording NUnit tests results 
ERROR: Step ‘Publish NUnit test result report’ aborted due to exception: 
java.io.IOException: remote file operation failed: C:\Jenkins\workspace\xxx at [email protected]:CIAgent: java.io.IOException: Failed to read C:\Jenkins\workspace\xxx\temporary-junit-reports\TEST-xxx_Tests.TestsWithRealServers.TestWithTwoLocals_1_2.xml 
    at hudson.FilePath.act(FilePath.java:986) 
    at hudson.FilePath.act(FilePath.java:968) 
    at hudson.plugins.nunit.NUnitPublisher.getTestResult(NUnitPublisher.java:226) 
    [...] 

Caused by: java.io.IOException: Failed to read C:\Jenkins\workspace\xxx\temporary-junit-reports\TEST-xxx_Tests.TestsWithRealServers.TestWithTwoLocals_1_2.xml 
    at hudson.tasks.junit.TestResult.parse(TestResult.java:306) 
    at hudson.tasks.junit.TestResult.parsePossiblyEmpty(TestResult.java:244) 
    at hudson.tasks.junit.TestResult.parse(TestResult.java:175) 
    [...] 
    ... 13 more 
Caused by: java.lang.NumberFormatException: empty String 
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) 
    at sun.misc.FloatingDecimal.parseFloat(Unknown Source) 
    at java.lang.Float.parseFloat(Unknown Source) 
    [...] 
Archiving artifacts 
Finished: FAILURE 

Die XML-Datei ist im Arbeitsverzeichnis vorhanden. Ich erwähnte, dass die erste Zeile dieser Datei wie folgt aussieht:

<?xml version="1.0" encoding="UTF-8"?><testsuite errors="0" failures="0" name="xxx_Tests.TestsWithRealServers.TestWithTwoLocals" skipped="6" tests="6" time=""> 

Also ich denke, es scheitert, weil die Zeit attribe leer.

Hat jemand wie ich das beheben kann oder warum dieser Fehler auftritt? Danke!

+0

Dies scheint nicht die Ergebnisdatei zu sein, die tatsächlich von NUnit produziert wird. Wie sieht das aus? – Charlie

+0

Die NUnit-Ergebnisdatei: http://pastebin.com/HEZuUVWv –

Antwort

1

Haben Sie kürzlich das Jenkins JUnit Plugin auf 1.12 aktualisiert? In diesem Update gibt es eine reported issue. Sie könnten versuchen, zurück zu 1.11 zu degradieren.

+0

Hallo - vielen Dank für Ihre Antwort! Ich werde es versuchen. Aber warum sollte es ein Problem mit JUnit sein? Ich teste mit NUnit ... Kommt es auf JUnit an? –

+0

Sie haben vielleicht bemerkt, dass ein Teil des Pfades zu Ihren Testergebnissen "\ temporary-junit-reports \" ist. Das NUnit jenkins-Plugin konvertiert die NUnit-Ausgabe einfach in etwas, das das JUnit-Plugin parsen kann. Wenn das NUnit-Plugin einen Test überspringt, wird eine leere Zeichenfolge in den Zeitabschnitt eingefügt (ich vermute, dass Sie dies sehen, wenn Sie sich TEST-xxx_Tests.TestsWithRealServers.TestWithTwoLocals_1_2.xml ansehen). Das JUnit 1.12-Plugin stürzt ab und versucht, die leere Zeitzeichenfolge zu analysieren. Downgrade auf 1.11 hat es für mich behoben. Ich erwarte sehr bald 1,13. – uberchris

+0

Ja - es funktioniert! Ich habe das JUnit-Plugin einfach auf 1.11 heruntergestuft. Vielen Dank für Ihre Hilfe!! –

0

Übrigens unterstützt Jenkins plugins das Nunit 3 XML-Format nicht. Ich hatte auch ein ähnliches Problem mit Jenkins. Ich habe das Ergebnisformat von Nunit 3 in das Nunit 2-Format konvertiert.

"C:\NUnit 3.5.0\nunit3-console.exe" /result:\MyApplication.xml;format=nunit2 "D:\Jenkins\workspace\MyApplication.Tests.dll"