Boost测试 - 其他文件中的每个套件

时间:2013-06-08 16:00:52

标签: 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,我希望将每个套件放在其他文件中。

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

1 个答案:

答案 0 :(得分:1)

我有类似你想要的设置(见this Q&A)。如果你想要一个CMake解决方案,那就看看吧。否则,只需将测试用例分成几个文件,然后使用选项

分别编译和链接每个文件
 -DBOOST_TEST_MAIN -DBOOST_TEST_DYN_LINK

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

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