Maven surefire测试重用fork vs parallel

时间:2014-02-19 10:33:20

标签: java maven parallel-processing junit4 applicationcontext

现在我有一个完整的项目,我想在maven中并行测试。 如果我设置并行选项,则我的测试失败DirtiesContexts。 (即使我使用@DirtiesContext(classMode=ClassMode.AFTER_CLASS))注释测试类

我没有把堆栈跟踪放在这里,但是它无法加载applicationcontext,导致他无法注册applicationcontext,因为它已经存在。

如果我使用reusefork,即使没有注释DirtiesContext,测试也会成功。

当你使用reusefork时,你将为每个fork创建总是新的VM(这就是为什么它成功的原因)。 (请参阅此处的文档:http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html

通过并行,你不会这样做,所以通常这将需要更少的资源。

现在提出问题:

  1. doc的链接仅与TestNG并行,但是here他们谈到JUnit 4.7及更高版本,所以我很困惑,什么是正确的文档?
  2. 并行测试是否更好dan reusefork?
  3. 如果更好,我该如何解决DirtiesContext
  4. 提前谢谢。

1 个答案:

答案 0 :(得分:0)