我使用 Boost Test 已经很长时间了,结果我的测试运行得太慢了。由于每个测试都是高度并行的,我希望它们与我的所有核心同时运行。
有没有办法使用 Boost 测试库来做到这一点?我没有找到任何解决方案。我试图查看如何编写自定义测试运行程序,但我没有太多关于这一点的文档:(
如果没有办法,有人知道一个好的 C++ 测试框架来实现这个目标吗?我以为 Google Test 可以完成这项工作,但显然它也不能并行运行测试。即使该框架的功能比其他更知名的框架少,也不是问题,我只需要简单的断言和多线程执行。
谢谢
最佳答案
你可以使用 CTest为此。
CTest 是 CMake(构建系统生成器)附带的测试驱动程序,因此您需要使用 CMake 使用现有文件和测试创建构建系统,这样您就可以使用 CTest运行测试可执行文件。
我没有亲自使用 Boost.Test 和 CMake(我们使用 GoogleTest),但是 this question详细介绍了该过程。
将测试添加到 CMakeLists 文件后,您可以使用 CTest's -j
argument指定要并行运行的作业数。
关于c++ - 有没有办法并行运行 C++ 单元测试测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12304927/