Viv*_*wal 5 java testng junit4 maven maven-surefire-plugin
在我的项目中,当我设置重用 Forks=true 时,我必须将 forkCount 增加到测试类的数量。否则,它会抛出非法参数异常。另外,如果我设置了重用Forks=false,那么它也能正常工作。
目前我有以下配置,因为测试类的数量少于 10。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<reuseForks>true</reuseForks>
<forkCount>10</forkCount>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我怎样才能保持重用Fork=true和forkCount=1。
编辑:ReuseFork=true 和 forkCount=1 上的 StackTrace
checkForReturnEventsPresent on checkForReturnEventsPresent(com.eras.senders.OMSReturnEventDataSenderTest)(com.eras.senders.OMSReturnEventDataSenderTest) Time elapsed: 0.014 sec <<< FAILURE!
java.lang.IllegalArgumentException: null
at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:115)
at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:212)
at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:108)
at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Run Code Online (Sandbox Code Playgroud)
在我的项目中,当我设置重用 Forks=true 时,我必须将 forkCount 增加到测试类的数量。否则,它会抛出非法参数异常。
从堆栈跟踪来看,您的代码中似乎有一些东西导致抛出异常,但只有在重用 fork 时才会抛出异常。这意味着不同的测试在某种程度上并不是彼此隔离的,因此在同一测试过程中一个接一个地运行违反了一些假设。例如,也许一个测试会像单例一样初始化一些全局状态,然后该全局状态对于该过程中的下一次测试运行来说是不正确的。
另外,如果我设置了重用Forks=false,那么它也能正常工作。
通过设置reuseForks为false,任何与像这样改变全局状态相关的问题都会被绕过。该进程在测试运行结束时被拆除,并为下一次测试运行启动一个具有新状态的新进程。
在这一点上,前进的道路高度依赖于你的代码库的细节以及它的测试是如何实现的。我看到两个选项:
reuseForksset to false。在许多情况下,额外的进程拆卸和启动不会对您的整体测试运行造成明显的性能影响。| 归档时间: |
|
| 查看次数: |
4078 次 |
| 最近记录: |