如何并发JUnit测试?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (42)

我有一个很大的JUnit测试套件,我很想同时运行所有的测试,原因有两个:

  • 利用多核心来更快地运行整个测试套件
  • 希望能够检测到由于非线程安全的全局对象造成的一些错误

我认识到这会迫使我重构一些代码以使其线程安全。

让JUnit同时运行所有测试的最佳方式是什么?

提问于
用户回答回答于

我一直在寻找这个问题的答案,我没有找到它。所以我写了一个简单的JUnit Runner来完成这个任务。请随意使用它; 有关MultiThreadedRunner类的完整说明和源代码,请参阅http://falutin.net/2012/12/30/multithreaded-testing-with-junit/。通过这个类,你可以像下面这样注释你现有的测试类:

@RunWith(MultiThreadedRunner.class)
用户回答回答于

例如,你可以像这样运行一个测试:

@Test(threadPoolSize = 3, invocationCount = 9,  timeOut = 10000)
public void doSomething() {
...
}

这意味着该doSomething()方法将由3个不同的线程调用9次。

扫码关注云+社区

领取腾讯云代金券