我有文件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,我希望将每个套件放在其他文件中。
我想从每个测试套件中运行所有测试用例。我该怎么办?
答案 0 :(得分:1)
我有类似你想要的设置(见this Q&A)。如果你想要一个CMake解决方案,那就看看吧。否则,只需将测试用例分成几个文件,然后使用选项
分别编译和链接每个文件 -DBOOST_TEST_MAIN -DBOOST_TEST_DYN_LINK
注意:通常首选将宏作为编译器/链接器选项而不是源文件中。通过几个测试源和一个CMake构建解决方案,您可以调用ctest
来运行所有测试可执行文件。
如果你想要一个测试可执行文件,他们会分别编译每个测试,并将它们连接成一个可执行文件。然后你可以运行这个可执行文件,它将运行所有测试。但请注意,以这种方式仅运行一系列测试要困难得多。