我有一个与PowerMockRunner.class
一起运行的JUNIT测试。
现在,我正在添加一个新测试,但是,我想同时运行两个测试。
我知道我可以使用@RunWith(ConcurrentTestRunner.class)
或仅通过自己创建并发执行程序来完成此操作。
PowerMock有什么可用的吗?
示例代码:
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassWithStaticMethod.class)
@SuppressStaticInitializationFor("ClassWithStaticMethod")
public class PowerMockTest {
@org.junit.Test
public void myTest() {
...
}
//This new Test
@org.junit.Test
public void myNewTest() {
...
}
}
答案 0 :(得分:0)
也许你没有想到的答案:不要这样做 - 不要并行运行测试。
您会发现,单元测试的主要目的是帮助您尽快识别和修复生产代码中的错误。因此,您希望将测试代码设置为简单"尽可能让你到那儿。
含义:并行运行测试肯定会使事情变得更复杂。最糟糕的情况是,你创造了一些" flaky",由于一些隐藏的竞争条件,你的测试有时并行工作,但在极少数情况下,并行运行会导致失败。
除此之外:单元测试应该首先运行得非常快。因此,并行运行测试不应该获得多少收益!
答案 1 :(得分:0)
您可以使用@PowerMockRunnerDelegate
与其他jUnit运行器一起运行PowerMock。更多信息here。
我不确定它是否适用于ConcurrentTestRunner
。但你可以试试。