为什么SpringJUnit4ClassRunner不能与surefire parallel =方法一起使用?

Bas*_*igt 4 java junit spring maven-3 maven-surefire-plugin

当我使用surefire设置时,为什么我的测试会抛出随机异常parallel=methods

Bas*_*igt 7

这是因为JUnit每个测试类只创建一个Runner实例,使用时由多个线程使用parallel=methods.SpringJUnit4ClassRunner只创建一个TestContextManager,它将测试实例存储在实例字段中,因此它不是线程安全的.

当你使用时,parallel=classes一切都应该没问题,因为JUnit会创建一个TestContextManager每个线程专用的运行器.

我已经提交了一个错误:https://jira.spring.io/browse/SPR-12421