-
Bug
-
Resolution: Not A Defect
-
Major
-
None
-
Jenkins 2.127 - xUnit plugin 2.0.2
We're building a lot of Drupal projects and run Drupal's Simpletest. Simpletest generates jUnit resultfiles - with emphasis on pluralis. At the moment, I'm testing a setup which produces 11 jUnit files.
xUnit fails to parse all of the files. Most of the time, it parses just a single file out of the 11, but I eventually had a single run yesterday which parsed 10 of the 11 files in a single run. What's even more confusing is the fact that the single file xUnit normally parses seems to be selected at random - I cannot figure out a pattern, at least.
The relevant snippet of my Jenkinsfile looks like this:
sh """ rm -rf simpletest docker exec ${PRODUCT}-www-develop /bin/sh -c 'rm -rf /tmp/simpletest && mkdir -p /tmp/simpletest && chown www-data:www-data /tmp/simpletest' docker exec ${PRODUCT}-www-develop /bin/sh -c 'cd /var/www && sudo -u www-data php scripts/run-tests-jenkins.sh --php /usr/bin/php --xml /tmp/simpletest --url ${testURL} "Netpunkt / Bibliotek.dk"' || true docker cp ${PRODUCT}-www-develop:/tmp/simpletest . """ step([$class: 'XUnitBuilder', testTimeMargin: '3000', thresholdMode: 1, thresholds: [ [$class: 'FailedThreshold', failureNewThreshold: '', failureThreshold: '0', unstableNewThreshold: '', unstableThreshold: ''], [$class: 'SkippedThreshold', failureNewThreshold: '', failureThreshold: '', unstableNewThreshold: '', unstableThreshold: '']], tools: [ [$class: 'JUnitType', deleteOutputFiles: false, failIfNotNew: true, pattern: 'simpletest/**', skipNoTestFiles: false, stopProcessingIfError: false]] ])
I have attached a screenshot showing five consecutive runs for which I just pressed "Build now" with no code changes what so ever. If you parse all 11 results files, there is more than 100 tests being run; but as you can see from the Testresult-trend graphic, build 104 found 11 tests, build 105 and 106 found 7 tests, build 107 found 8 tests, and build 108 found 10 tests.
For each run I have confirmed that all 11 result files are present in the "simpletest" directory.
The jUnit result generator used is coded by myself and I have confirmed that the jUnit files validates against the jUnit schema used by the xUnit plugin. All files parse whenever xUnit attempts to.
The job log shows the following:
[Simpletest] INFO: Starting to record. [Simpletest] INFO: Processing JUnit [Simpletest] INFO: [JUnit] - 11 test report file(s) were found with the pattern 'simpletest/**' relative to '/var/lib/jenkins/workspace/netpunkt-test-setup' for the testing framework 'JUnit'. [Simpletest] INFO: Check 'Failed Tests' threshold. [Simpletest] INFO: Check 'Skipped Tests' threshold. [Simpletest] INFO: Setting the build status to SUCCESS [Simpletest] INFO: Stopping recording.
As you can see, xUnit claims it has found all 11 files. But it only parsed a single file for this build.
- is related to
-
JENKINS-48583 Junit test reports are dropped if they have a timestamp within the same second as another test report
-
- Resolved
-
Could you post the report generated by your customisation when tests are less than expected?
By default all project parse multiple files and this issue never happens, maybe the produced junit reports report a wrong number of test.