Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-58430

Publishing two fitnesse xml files with same test name confuses the results

      • In one pipeline job, run the same FitNesse tests and generate 2 xml files. So for instance:
        • FitNesse tests on Linux generates fitnesse_linux.xml
        • FitNesse tests on Windows generates fitnesse_windows.xml
          The way the tests are generated is as follows (same for windows)
          java -jar ./fitnesse-standalone.jar -c "MySuite?suite&format=xml&includehtml" -b fitnesse_windows.xml
          
      • Now in the pipeline job, the tests are published in this way:
        step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml'])
      • Then let's assume that MySuite.TestOne fails on Linux, when I go to see the Details of the failure from the FitNesseReport link in Jenkins, while TestOne shows as failed, the html details I can see from there actually shows the details of the windows run.

      To reproduce this issue, use the following pipeline. Run it once and them manually copy the two xml files attached into the workspace. Run it again and it should publish the FitNesse results. My agent is a linux agent if that makes a difference.

      pipeline {
          agent {
              label 'your-agent'
          }
          stages {
              stage ('Repro') {
                  steps {
                      echo 'Make sure the files are in the Workspace'
                  }
              }
          }
          post {
              always {
                  step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml'])
              }
          }
      }
      

      Once the results are published, you can see that the fitnesse_windows.xml has been successful while fitnesse_linux.xml has failed. You can see this in the FitNesse report that this is represented correctly:


      But if I click on the fitnesse_linux.xml and then on the Details link for test BuysideEnterprise.Ims.MySuite.TestOne then it actually shows me the details of the run in fitnesse_windows.xml instead of the linux one. It looks like the details have been overridden.

      Therefore, while I see that the test has failed, I cannot see why as it is showing me the incorrect run details:

          [JENKINS-58430] Publishing two fitnesse xml files with same test name confuses the results

          Johann Moro created issue -
          Johann Moro made changes -
          Attachment New: fitnesse_linux.xml [ 47968 ]
          Attachment New: fitnesse_windows.xml [ 47969 ]
          Johann Moro made changes -
          Description Original: * In one pipeline job, run the same FitNesse tests and generate 2 xml files. So for instance:
          ** FitNesse tests on Linux generates fitnesse_linux.xml
          ** FitNesse tests on Windows generates fitnesse_windows.xml
          The way the tests are generated is as follows (same for windows)
          {code:java}
          java -jar ./fitnesse-standalone.jar -c "MySuite?suite&format=xml&includehtml" -b fitnesse_windows.xml
          {code}
          * Now in the pipeline job, the tests are published in this way:
          {code:java}step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml']){code}
          * Then let's assume that MySuite.TestOne fails on Linux, when I go to see the Details of the failure from the FitNesseReport link in Jenkins, while TestOne shows as failed, the html details I can see from there actually shows the details of the windows run.
          New: * In one pipeline job, run the same FitNesse tests and generate 2 xml files. So for instance:
           ** FitNesse tests on Linux generates fitnesse_linux.xml
           ** FitNesse tests on Windows generates fitnesse_windows.xml
           The way the tests are generated is as follows (same for windows)
          {code:java}
          java -jar ./fitnesse-standalone.jar -c "MySuite?suite&format=xml&includehtml" -b fitnesse_windows.xml
          {code}

           * Now in the pipeline job, the tests are published in this way:
          {code:java}
          step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml']){code}

           * Then let's assume that MySuite.TestOne fails on Linux, when I go to see the Details of the failure from the FitNesseReport link in Jenkins, while TestOne shows as failed, the html details I can see from there actually shows the details of the windows run.

          ----
          To reproduce this issue, use the following pipeline. Run it once and them manually copy the two xml files attached into the workspace. Run it again and it should publish the FitNesse results.
          {code}
          pipeline {
              agent {
                  label 'your-agent'
              }
              stages {
                  stage ('Repro') {
                      steps {
                          echo 'Make sure the files are in the Workspace'
                      }
                  }
              }
              post {
                  always {
                      step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml'])
                  }
              }
          }
          {code}

          Once the results are published, you can see that the fitnesse_windows.xml has been successful while fitnesse_linux.xml has failed. You can see this in the FitNesse report that this is represented correctly:
          Johann Moro made changes -
          Attachment New: FitNesseReport.png [ 47970 ]
          Johann Moro made changes -
          Johann Moro made changes -
          Description Original: * In one pipeline job, run the same FitNesse tests and generate 2 xml files. So for instance:
           ** FitNesse tests on Linux generates fitnesse_linux.xml
           ** FitNesse tests on Windows generates fitnesse_windows.xml
           The way the tests are generated is as follows (same for windows)
          {code:java}
          java -jar ./fitnesse-standalone.jar -c "MySuite?suite&format=xml&includehtml" -b fitnesse_windows.xml
          {code}

           * Now in the pipeline job, the tests are published in this way:
          {code:java}
          step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml']){code}

           * Then let's assume that MySuite.TestOne fails on Linux, when I go to see the Details of the failure from the FitNesseReport link in Jenkins, while TestOne shows as failed, the html details I can see from there actually shows the details of the windows run.

          ----
          To reproduce this issue, use the following pipeline. Run it once and them manually copy the two xml files attached into the workspace. Run it again and it should publish the FitNesse results.
          {code}
          pipeline {
              agent {
                  label 'your-agent'
              }
              stages {
                  stage ('Repro') {
                      steps {
                          echo 'Make sure the files are in the Workspace'
                      }
                  }
              }
              post {
                  always {
                      step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml'])
                  }
              }
          }
          {code}

          Once the results are published, you can see that the fitnesse_windows.xml has been successful while fitnesse_linux.xml has failed. You can see this in the FitNesse report that this is represented correctly:
          New: * In one pipeline job, run the same FitNesse tests and generate 2 xml files. So for instance:
           ** FitNesse tests on Linux generates fitnesse_linux.xml
           ** FitNesse tests on Windows generates fitnesse_windows.xml
           The way the tests are generated is as follows (same for windows)
          {code:java}
          java -jar ./fitnesse-standalone.jar -c "MySuite?suite&format=xml&includehtml" -b fitnesse_windows.xml
          {code}

           * Now in the pipeline job, the tests are published in this way:
          {code:java}
          step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml']){code}

           * Then let's assume that MySuite.TestOne fails on Linux, when I go to see the Details of the failure from the FitNesseReport link in Jenkins, while TestOne shows as failed, the html details I can see from there actually shows the details of the windows run.

          ----
          To reproduce this issue, use the following pipeline. Run it once and them manually copy the two xml files attached into the workspace. Run it again and it should publish the FitNesse results.
          {code}
          pipeline {
              agent {
                  label 'your-agent'
              }
              stages {
                  stage ('Repro') {
                      steps {
                          echo 'Make sure the files are in the Workspace'
                      }
                  }
              }
              post {
                  always {
                      step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml'])
                  }
              }
          }
          {code}

          Once the results are published, you can see that the fitnesse_windows.xml has been successful while fitnesse_linux.xml has failed. You can see this in the FitNesse report that this is represented correctly:
           !FitNesseReport.png!
           !Details-of-test-not-representing-failure.png.png|thumbnail!
          But if I click on the fitnesse_linux.xml and then on the Details link for test _BuysideEnterprise.Ims.MySuite.TestOne_ then it actually shows me the details of the run in fitnesse_windows.xml instead of the linux one. It looks like the details have been overridden.

          Therefore, while I see that the test has failed, I cannot see why as it is showing me the incorrect run details:
           !Details-of-test-not-representing-failure.png!
          Johann Moro made changes -
          Description Original: * In one pipeline job, run the same FitNesse tests and generate 2 xml files. So for instance:
           ** FitNesse tests on Linux generates fitnesse_linux.xml
           ** FitNesse tests on Windows generates fitnesse_windows.xml
           The way the tests are generated is as follows (same for windows)
          {code:java}
          java -jar ./fitnesse-standalone.jar -c "MySuite?suite&format=xml&includehtml" -b fitnesse_windows.xml
          {code}

           * Now in the pipeline job, the tests are published in this way:
          {code:java}
          step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml']){code}

           * Then let's assume that MySuite.TestOne fails on Linux, when I go to see the Details of the failure from the FitNesseReport link in Jenkins, while TestOne shows as failed, the html details I can see from there actually shows the details of the windows run.

          ----
          To reproduce this issue, use the following pipeline. Run it once and them manually copy the two xml files attached into the workspace. Run it again and it should publish the FitNesse results.
          {code}
          pipeline {
              agent {
                  label 'your-agent'
              }
              stages {
                  stage ('Repro') {
                      steps {
                          echo 'Make sure the files are in the Workspace'
                      }
                  }
              }
              post {
                  always {
                      step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml'])
                  }
              }
          }
          {code}

          Once the results are published, you can see that the fitnesse_windows.xml has been successful while fitnesse_linux.xml has failed. You can see this in the FitNesse report that this is represented correctly:
           !FitNesseReport.png!
           !Details-of-test-not-representing-failure.png.png|thumbnail!
          But if I click on the fitnesse_linux.xml and then on the Details link for test _BuysideEnterprise.Ims.MySuite.TestOne_ then it actually shows me the details of the run in fitnesse_windows.xml instead of the linux one. It looks like the details have been overridden.

          Therefore, while I see that the test has failed, I cannot see why as it is showing me the incorrect run details:
           !Details-of-test-not-representing-failure.png!
          New: * In one pipeline job, run the same FitNesse tests and generate 2 xml files. So for instance:
           ** FitNesse tests on Linux generates fitnesse_linux.xml
           ** FitNesse tests on Windows generates fitnesse_windows.xml
           The way the tests are generated is as follows (same for windows)
          {code:java}
          java -jar ./fitnesse-standalone.jar -c "MySuite?suite&format=xml&includehtml" -b fitnesse_windows.xml
          {code}

           * Now in the pipeline job, the tests are published in this way:
          {code:java}
          step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml']){code}

           * Then let's assume that MySuite.TestOne fails on Linux, when I go to see the Details of the failure from the FitNesseReport link in Jenkins, while TestOne shows as failed, the html details I can see from there actually shows the details of the windows run.

          ----
          To reproduce this issue, use the following pipeline. Run it once and them manually copy the two xml files attached into the workspace. Run it again and it should publish the FitNesse results. My agent is a linux agent if that makes a difference.
          {code}
          pipeline {
              agent {
                  label 'your-agent'
              }
              stages {
                  stage ('Repro') {
                      steps {
                          echo 'Make sure the files are in the Workspace'
                      }
                  }
              }
              post {
                  always {
                      step([$class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse_*.xml'])
                  }
              }
          }
          {code}

          Once the results are published, you can see that the fitnesse_windows.xml has been successful while fitnesse_linux.xml has failed. You can see this in the FitNesse report that this is represented correctly:
           !FitNesseReport.png!
           !Details-of-test-not-representing-failure.png.png|thumbnail!
          But if I click on the fitnesse_linux.xml and then on the Details link for test _BuysideEnterprise.Ims.MySuite.TestOne_ then it actually shows me the details of the run in fitnesse_windows.xml instead of the linux one. It looks like the details have been overridden.

          Therefore, while I see that the test has failed, I cannot see why as it is showing me the incorrect run details:
           !Details-of-test-not-representing-failure.png!
          jaruzafa made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          jaruzafa made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: In Progress [ 3 ] New: Fixed but Unreleased [ 10203 ]
          jaruzafa made changes -
          Status Original: Fixed but Unreleased [ 10203 ] New: Resolved [ 5 ]

            Unassigned Unassigned
            johannmoro Johann Moro
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: