在单独的 cpp 文件中进行 Boost 单元测试

2024-04-15

我想将 Boost 单元测试分成单独的 .cpp 文件(例如 Test1.cpp、Test2.cpp、Test3.cpp ...等),这样我就不会在单个 cpp 文件中包含 1000 个测试。到目前为止,当我尝试构建时,我遇到了各种错误。

测试1.cpp

#define BOOST_TEST_MODULE MasterTestSuite
#include <boost/test/included/unit_test.hpp>
BOOST_AUTO_TEST_CASE(myTestCase)
{
  BOOST_CHECK(1 == 1);  
}

测试2.cpp

#define BOOST_TEST_MODULE MasterTestSuite2
#include <boost/test/included/unit_test.hpp>
BOOST_AUTO_TEST_CASE(myTestCase2)
{
  BOOST_CHECK(2 == 2);  
}

boost-test生成它自己的main当你定义时函数BOOST_TEST_MODULE, see: BOOST_TEST_MODULE https://www.boost.org/doc/libs/1_70_0/libs/test/doc/html/boost_test/utf_reference/link_references/link_boost_test_module_macro.html。你的一些错误很可能就是因为这个。

I put BOOST_TEST_MODULE在单独的文件中,例如:

测试主程序.cpp

#ifndef _MSC_VER
#define BOOST_TEST_DYN_LINK
#endif
#define BOOST_TEST_MAIN
#define BOOST_TEST_MODULE Main
#include <boost/test/unit_test.hpp>

然后使用测试套件 https://www.boost.org/doc/libs/1_70_0/libs/test/doc/html/boost_test/tests_organization/test_tree/test_suite.html#ref_BOOST_AUTO_TEST_SUITE将单元测试分成单独的 .cpp 文件,并使用test suite在每个单元测试文件中,例如:

测试1.cpp

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(MyTests)

BOOST_AUTO_TEST_CASE(myTestCase)
{
  BOOST_CHECK(1 == 1);
}

BOOST_AUTO_TEST_SUITE_END()

测试2.cpp

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(MyTests2)

BOOST_AUTO_TEST_CASE(myTestCase2)
{
  BOOST_CHECK(2 == 2);
}

BOOST_AUTO_TEST_SUITE_END()

您可以在测试目录中找到此方法的示例here https://github.com/kenba/via-httplib.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在单独的 cpp 文件中进行 Boost 单元测试 的相关文章

随机推荐