PowerMockRunner与Concurrent

时间:2016-09-21 10:27:06

标签: junit4 powermock powermockito junit-runner

我有一个与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() {
     ...
    }

}

2 个答案:

答案 0 :(得分:0)

也许你没有想到的答案:不要这样做 - 不要并行运行测试。

您会发现,单元测试的主要目的是帮助您尽快识别和修复生产代码中的错误。因此,您希望将测试代码设置为简单"尽可能让你到那儿。

含义:并行运行测试肯定会使事情变得更复杂。最糟糕的情况是,你创造了一些" flaky",由于一些隐藏的竞争条件,你的测试有时并行工作,但在极少数情况下,并行运行会导致失败。

除此之外:单元测试应该首先运行得非常快。因此,并行运行测试不应该获得多少收益!

答案 1 :(得分:0)

您可以使用@PowerMockRunnerDelegate与其他jUnit运行器一起运行PowerMock。更多信息here。 我不确定它是否适用于ConcurrentTestRunner。但你可以试试。