Невозможно запустить определенную группу TestNG через maven

Я попытался запустить одну группу, как описано в этом вопросе Могу ли я запустить определенную тестовую группу testng через maven?

mvn test -Dgroups=debug

но продолжайте получать эту ошибку:

org.apache.maven.surefire.util.SurefireReflectionException: java.lang.reflect.InvocationTargetException; nested exception is java.lang.reflect.InvocationTargetException: null
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
    at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
    at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
Caused by: java.lang.NullPointerException
    at testsuites.TestListener.onTestFailure(TestListener.java:32)
    at org.testng.internal.Invoker.runTestListeners(Invoker.java:1895)
    at org.testng.internal.Invoker.runTestListeners(Invoker.java:1879)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1292)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
    at org.testng.SuiteRunner.run(SuiteRunner.java:254)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
    at org.testng.TestNG.run(TestNG.java:1057)
    at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:70)
    at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:158)
    at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:98)
    at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111)
    ... 9 more

Есть идеи, что может быть не так? У меня есть группы, определенные в pom.xml следующим образом:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <groups>
            debug, test
        </groups>
        <properties>
            <property>
                <name>usedefaultlisteners</name>
                <value>true</value>
            </property>
        </properties>
        <includes>
                 <include>
                      testsuites/LoginTestSuite.java 
                </include>
          </includes>
     </configuration>
</plugin>

сам тест снабжен аннотацией

@Test(groups = {"debug"})

person casper    schedule 05.05.2014    source источник
comment
at testsuites.TestListener.onTestFailure(TestListener.java:32) Это один из ваших собственных классов? Потому что он взрывается с NPE.   -  person Gimby    schedule 05.05.2014
comment
да, это мой тестовый слушатель, и он отлично работает. По крайней мере, когда я не указываю группы.   -  person casper    schedule 05.05.2014
comment
думаю, я нашел проблему. Мне пришлось аннотировать метод setUp с alwaysRun = true   -  person casper    schedule 05.05.2014
comment
Да, но он взрывается, когда вы запускаете вещи по-другому, так что это не так хорошо, как вы думаете. Возможно, вы создали ужасный сценарий, в котором тесты влияют друг на друга, и это зависит от того, в каком порядке они вызываются. Мои волосы выпадают, просто думаю об этом.   -  person Gimby    schedule 05.05.2014
comment
почти. тесты полагаются на метод setUp :)   -  person casper    schedule 05.05.2014
comment
Возможно, вы захотите переосмыслить это или вместо этого использовать аннотации @BeforeClass @BeforeGroups и @BeforeSuite.   -  person Mikkel Løkke    schedule 05.05.2014
comment
ну, это именно то, что я использовал - @BeforeSuite, но похоже, что maven игнорирует эту аннотацию, если для нее не установлено значение alwaysRun = true и если вы указываете имя группы, назначенное только некоторым методам в классе.   -  person casper    schedule 05.05.2014