c++ - boost 测试 - 其他文件中的每个套件

标签 c++ unit-testing testing boost

我有文件 test.cpp。它看起来像这样:

#define BOOST_TEST_MAIN
#include <boost/test/included/unit_test.hpp>


BOOST_AUTO_TEST_SUITE( test_suite1 )

BOOST_AUTO_TEST_CASE( my_test )
{
    // testing...
}

BOOST_AUTO_TEST_SUITE_END()

没关系。它有效....

但我想要更多的 BOOST_AUTO_TEST_SUITE 并且我希望每个套件都在其他文件中。

我想运行每个测试套件中的所有测试用例。我应该怎么办?

最佳答案

我有一个与您想要的类似的设置(参见 this Q&A )。如果您想要 CMake 解决方案,请看那里。否则,只需将您的测试用例拆分为多个文件,然后使用选项分别编译和链接它们

 -DBOOST_TEST_MAIN -DBOOST_TEST_DYN_LINK

注意:通常首选将宏作为编译器/链接器选项而不是放在源文件中。有了几个测试源和一个 CMake 构建解决方案,您就可以调用 ctest 来运行所有测试可执行文件。

如果您想要一个测试可执行文件,他们会分别编译每个测试,并将它们链接在一起成为一个可执行文件。然后你可以运行这个可执行文件,它将运行所有测试。但是请注意,以这种方式仅运行一部分测试要困难得多。

关于c++ - boost 测试 - 其他文件中的每个套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001320/

相关文章:

c++ - 使用 Win32 API 和 GDI 绘制窗口的无效区域

c++ - 返回指向动态数组中最年轻学生的指针

c - 比较字符串的有效方法是什么?

c++ - 不区分大小写的比较

c++ - 在不使用就地编辑的情况下更改 Qt AbstractListModel

ruby - 当参数需要资源引用时如何对 Puppet 类进行 rspec 测试

scala - 是否可以在游戏功能测试中模拟数据库连接以及如何?

java - Selenium : How to know current frame number or value?

c++ - 获得对私有(private)成员的访问权限以在 C++ 中进行测试

testing - 如何回滚、重置或删除 Ecto 测试数据库?