Maven surfire测试reusefork vs parallel

chi*_*rld 5 java parallel-processing junit4 maven 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并行,但在这里他们谈到JUnit 4.7及更高版本,所以我很困惑,什么是正确的文档?
  2. 并行测试是否更好dan reusefork?
  3. 如果它更好,我该如何解决DirtiesContext

Thx提前.