我有一个与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() {
...
}
}
发布于 2016-09-21 13:24:50
也许你没有预料到的答案是:不要这样做--不要并行运行测试。
您知道,单元测试的主要目的是帮助您尽快识别和修复生产代码中的bug。因此,您希望您的测试代码尽可能“简单”才能达到目标。
意思:并行运行你的测试肯定会让事情变得更加复杂。最坏的情况是,你创建了一些“薄片”,因为一些隐藏的竞争条件,你的测试有时会并行工作,但在极少数情况下,并行运行会失败。
除此之外:单元测试首先应该运行得非常快。因此,并行运行测试应该不会有太大的好处!
发布于 2016-10-22 14:07:30
您可以使用@PowerMockRunnerDelegate
与其他jUnit运行器一起运行PowerMock。更多信息here。我不确定它是否能与ConcurrentTestRunner
一起工作。但你可以试一试。
https://stackoverflow.com/questions/39613947
复制相似问题