Uploaded image for project: 'Maven Surefire'
  1. Maven Surefire
  2. SUREFIRE-433

All tests run in a single execution are reported as coming from just one class




      When running a directory of Junit tests, surefire will generate a TEST-(full-classname).xml per test class in the surefire-reports directory. Each XML will contain a testcase for each method in the given class.

      However when runnign TestNG test, surefire only generates one Test-TestSuite.xml in the surefire-reports directory. This xml contains a testcase per test method for all the classes in the given project.

      This is a problem since it breaks the surefire-report.

      • The report wil have a class section with one row, The class name in the row will be TestSuite
      • The report will have a package section with one row. The package name in the row will be empty. ("TestSuite" contains no dot so no package)
      • Proberly unrelated, but any < or > characters appers on the page as < and >

      I have looked a bit at the code and the problem appears to be that in SureFire TestNG Runner(surefire-testng) the methods

      • org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.startTestSuite(...)
      • org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.finishTestSuite(...)

      is only called once, and inside it uses a hardcoded "TestSuite" for the name.

      I think it should be called for each class and passed the full classname as name parameter.

      I will attach a simple maven project that shows the problem.


        1. bug-example.zip
          44 kB
          Henrik Lynggaard
        2. junit4-dir-suite-it.patch
          6 kB
          Benjamin Bentmann
        3. testng-dir-suite-it.patch
          6 kB
          Benjamin Bentmann



            • Assignee:
              lynggaard Henrik Lynggaard
            • Votes:
              2 Vote for this issue
              4 Start watching this issue


              • Created: