1

我有一个运行的 JUNIT 测试PowerMockRunner.class
现在,我正在添加一个新测试,但是,我想同时运行这两个测试。
我知道我可以使用@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() {
     ...
    }

}
4

2 回答 2

0

也许是你没想到的答案:不要那样做——不要并行运行测试。

您会看到,单元测试的主要目的是帮助您尽快识别和修复生产代码中的错误。因此,您希望您的测试代码尽可能“简单”以使您到达那里。

含义:并行运行测试肯定会使事情变得更加复杂。最坏的情况是,您创建了一些“不稳定”的东西,由于某些隐藏的竞争条件,您的测试有时会并行工作,但在极少数情况下,并行运行会导致失败。

除此之外:单元测试首先应该运行得非常快。所以并行运行测试应该不会有太大的收获!

于 2016-09-21T13:24:50.180 回答
0

您可以使用@PowerMockRunnerDelegate. 更多信息在这里。我不确定它是否适用于ConcurrentTestRunner. 不过你可以试试。

于 2016-10-22T14:07:29.817 回答