[ 
https://issues.apache.org/jira/browse/SUREFIRE-1229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15146302#comment-15146302
 ] 

Manoj Palki commented on SUREFIRE-1229:
---------------------------------------

I did some more debugging on this issue and have listed my findings below. 

As noted earlier we run Cucumber tests in parallel. When the surefire config is 
    <forkCount>${parallelCukes}</forkCount>
                    <reuseForks>false</reuseForks>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
then the tests work fine. 

But when I use the following config
<threadCount>20</threadCount>
<parallel>classes</parallel>
<redirectTestOutputToFile>true</redirectTestOutputToFile>

then the tests are fine (i.e Cucumber reports the scenario as passed), but 
still the above exception is thrown. 

 Most of the tests with this issue had a "(...)" in the scenario name.  Example 
- " Scenario: I am a (test) user ... "
When I remove these braces, then the above exception is not thrown.  Also I 
dont think this is caused by a thread-unsafe operation. Even when I run a 
single feature file, the exception is thrown consistently. 


> Cucumber parallel tests using Surefire throws NPE
> -------------------------------------------------
>
>                 Key: SUREFIRE-1229
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1229
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.18.1
>            Reporter: Manoj Palki
>
> I am running Cucumber feature files in parallel using the surefire config
> <threadCount>20</threadCount>
> <parallel>classes</parallel>
> <redirectTestOutputToFile>true</redirectTestOutputToFile>
> The tests run successfully. But at the end I get the following NPE
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on 
> project accounts-webservice: Execution default-test of goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was 
> an error in the forked process
> [ERROR] org.apache.maven.surefire.testset.TestSetFailedException: 
> java.lang.NullPointerException
> [ERROR] at 
> org.apache.maven.surefire.common.junit4.JUnit4RunListener.rethrowAnyTestMechanismFailures(JUnit4RunListener.java:213)
> [ERROR] at 
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:109)
> [ERROR] at 
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:78)
> [ERROR] at 
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:54)
> [ERROR] at 
> org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:144)
> [ERROR] at 
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
> [ERROR] at 
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
> [ERROR] at 
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
> [ERROR] Caused by: java.lang.NullPointerException
> [ERROR] at 
> org.apache.maven.surefire.junitcore.ConcurrentRunListener.testStarting(ConcurrentRunListener.java:129)
> [ERROR] at 
> org.apache.maven.surefire.common.junit4.JUnit4RunListener.testStarted(JUnit4RunListener.java:91)
> [ERROR] at 
> org.junit.runner.notification.RunNotifier$3.notifyListener(RunNotifier.java:115)
> [ERROR] at 
> org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:61)
> [ERROR] at 
> org.junit.runner.notification.RunNotifier.fireTestStarted(RunNotifier.java:112)
> [ERROR] at 
> org.junit.internal.runners.model.EachTestNotifier.fireTestStarted(EachTestNotifier.java:43)
> [ERROR] at 
> cucumber.runtime.junit.JUnitReporter.startExecutionUnit(JUnitReporter.java:50)
> [ERROR] at 
> cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:89)
> [ERROR] at 
> cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
> [ERROR] at 
> cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
> [ERROR] at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> [ERROR] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> [ERROR] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> [ERROR] at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> [ERROR] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> [ERROR] at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> [ERROR] at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
> [ERROR] at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
> [ERROR] at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
> [ERROR] at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> [ERROR] at 
> org.apache.maven.surefire.junitcore.pc.Scheduler$1.run(Scheduler.java:387)
> [ERROR] at 
> org.apache.maven.surefire.junitcore.pc.InvokerStrategy.schedule(InvokerStrategy.java:54)
> [ERROR] at 
> org.apache.maven.surefire.junitcore.pc.Scheduler.schedule(Scheduler.java:346)
> [ERROR] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> [ERROR] at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> [ERROR] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> [ERROR] at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> [ERROR] at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
> [ERROR] at org.junit.runners.Suite.runChild(Suite.java:127)
> [ERROR] at org.junit.runners.Suite.runChild(Suite.java:26)
> [ERROR] at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> [ERROR] at 
> org.apache.maven.surefire.junitcore.pc.Scheduler$1.run(Scheduler.java:387)
> [ERROR] at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [ERROR] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> [ERROR] at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [ERROR] at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [ERROR] at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to