Failure in test class constructor or @Before method is not reported (was: Maven plugin doesn't set build to unstable on SurefireExecutionException)

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Critical
    • Component/s: junit-plugin
    • Environment:
      Hudson 1.351, Maven 2.2.1, Surefire 2.5, TestNG 5.9
      Jenkins 1.420

      Occasionally we have some test which lets Surefire fail hard which Hudson doesn't recognize. I.e. the tests are not executed, but the build result is still success.
      E.g. we had a test which failed with a NoSuchFieldException in the constructor of the test class:

      Running TestSuite
      log4j:WARN No appenders could be found for logger (...).
      log4j:WARN Please initialize the log4j system properly.
      org.apache.maven.surefire.booter.SurefireExecutionException:
      Cannot instantiate class XyzTest; nested exception is org.testng.TestNGException:
      Cannot instantiate class XyzTest
      org.testng.TestNGException:
      Cannot instantiate class XyzTest
      at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:35)
      at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:330)
      at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:62)
      at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:81)
      at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:114)
      at org.testng.TestRunner.initMethods(TestRunner.java:289)
      at org.testng.TestRunner.init(TestRunner.java:235)
      at org.testng.TestRunner.init(TestRunner.java:197)
      at org.testng.TestRunner.<init>(TestRunner.java:141)
      at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:488)
      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:250)
      at org.testng.SuiteRunner.run(SuiteRunner.java:204)
      at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
      at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
      at org.testng.TestNG.run(TestNG.java:751)
      at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
      at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
      at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
      at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
      Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:26)
      ... 23 more
      Caused by: java.lang.NoSuchFieldException: cipherService
      at java.lang.Class.getDeclaredField(Class.java:1882)
      at XyzTest.<init>(XyzTest.java:91)
      ... 28 more
      [ERROR] There are test failures.

            Assignee:
            kutzi
            Reporter:
            kutzi
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: