我们在Maven Surefire插件中有several options来描述分叉。其中一个选项forkCount的解释如下:
选择以并行方式指定要并行分叉的VM数 执行测试。当以" C"终止时,数字部分为 乘以CPU核心数。浮点值仅为 与" C"一起被接受。如果设置为" 0",则不会分叉任何VM 测试在主要过程中执行。
基于此,我可能会猜测,如果使用分叉机制并且重用叉子(reuseForks = true),那么相同的JVM将用于多个测试。这意味着,如果我已经将一些类加载到内存中,那么该类的静态成员可以在其他测试中重用,并意外地将其失败。
我的理解是否正确?
答案 0 :(得分:0)
如果套件或参数化用
@NotThreadSafe
注释,则套件类在单线程中执行。您还可以注释Suite引用的单个测试类,并且套件中的其他未注释的测试类可以并行运行。注意:根据JUnit运行者的设计,在父线程中调用使用
@BeforeClass
和@AfterClass
注释的静态方法。将类分配给@NotThreadSafe
套件以防止出现此问题。