在单独的 cpp 文件中提升单元测试
Boost unit test in separate cpp files
我想将我的 Boost 单元测试分成单独的 .cpp 文件(例如 Test1.cpp、Test2.cpp、Test3.cpp ... 等)这样我就没有 1000 个测试在单个 cpp 文件中。到目前为止,我在尝试构建时遇到了各种错误。
Test1.cpp
#define BOOST_TEST_MODULE MasterTestSuite
#include <boost/test/included/unit_test.hpp>
BOOST_AUTO_TEST_CASE(myTestCase)
{
BOOST_CHECK(1 == 1);
}
Test2.cpp
#define BOOST_TEST_MODULE MasterTestSuite2
#include <boost/test/included/unit_test.hpp>
BOOST_AUTO_TEST_CASE(myTestCase2)
{
BOOST_CHECK(2 == 2);
}
当您定义 BOOST_TEST_MODULE
时,boost-test
会生成它自己的 main
函数,请参阅:BOOST_TEST_MODULE。你的一些错误很可能是因为这个。
我把BOOST_TEST_MODULE
放在一个单独的文件里,例如:
test_main.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>
然后使用 test suites 将单元测试分离到单独的 .cpp 文件中,每个单元测试文件中有一个 test suite
例如:
Test1.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()
Test2.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.
中找到此方法的示例
我想将我的 Boost 单元测试分成单独的 .cpp 文件(例如 Test1.cpp、Test2.cpp、Test3.cpp ... 等)这样我就没有 1000 个测试在单个 cpp 文件中。到目前为止,我在尝试构建时遇到了各种错误。
Test1.cpp
#define BOOST_TEST_MODULE MasterTestSuite
#include <boost/test/included/unit_test.hpp>
BOOST_AUTO_TEST_CASE(myTestCase)
{
BOOST_CHECK(1 == 1);
}
Test2.cpp
#define BOOST_TEST_MODULE MasterTestSuite2
#include <boost/test/included/unit_test.hpp>
BOOST_AUTO_TEST_CASE(myTestCase2)
{
BOOST_CHECK(2 == 2);
}
BOOST_TEST_MODULE
时,boost-test
会生成它自己的 main
函数,请参阅:BOOST_TEST_MODULE。你的一些错误很可能是因为这个。
我把BOOST_TEST_MODULE
放在一个单独的文件里,例如:
test_main.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>
然后使用 test suites 将单元测试分离到单独的 .cpp 文件中,每个单元测试文件中有一个 test suite
例如:
Test1.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()
Test2.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.
中找到此方法的示例