c++ - 有没有办法并行运行 C++ 单元测试测试?

标签 c++ multithreading unit-testing concurrency boost-test

我使用 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/

相关文章:

c++ - 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断

c++ - 将注册表访问转换为来自 MFC 功能包的数据库调用

c++ - 使用 Cygwin 构建 GLEW 失败

c - 如果不使用线程,原子性仍然是一个问题吗?

c++ - 如何将 ostream 对象重定向到临时缓冲区?

c++ - 尝试使用 std::get_time 解析 YYMMDD 并失败

java - Guava 事件总线 : NullPointerException when Posting from Thread to UI

java - 从单个线程修改 HashMap 并从多个线程读取?

java - 如何在不创建图形的情况下创建自定义顶点?

unit-testing - 调用模型的 Laravel 4 测试 Controller