我有一个Visual Studio项目,我想用Boost.Test进行一些单元测试。
我有两份文件:
档案1:
#define BOOST_TEST_MODULE FileX
#include <boost/test/unit_test.hpp>
#include <stdio.h>
BOOST_AUTO_TEST_SUITE(test_suite_name)
BOOST_AUTO_TEST_CASE(TestFileX)
{
BOOST_CHECK(true);
}
BOOST_AUTO_TEST_SUITE_END()和档案2:
#define BOOST_TEST_MODULE XContainer
#include <boost/test/unit_test.hpp>
#include <stdio.h>
BOOST_AUTO_TEST_SUITE(test_suite_name2)
BOOST_AUTO_TEST_CASE(TestXContainer)
{
BOOST_CHECK(true);
}
BOOST_AUTO_TEST_SUITE_END()当我编译这个项目时,我会得到一个链接错误,即main已经定义了。我注意到main文件是在unit_test.hpp中定义的,但是我需要为测试宏包括它。
如何在两个单独的文件中添加两个测试用例?
发布于 2014-07-02 21:28:42
真正的问题是,BOOST_TEST_MODULE只打算在整个测试可执行文件中定义一次。定义BOOST_TEST_MODULE还定义了BOOST_TEST_MAIN,它引入了main的实现。
因此,在一个地方,将BOOST_TEST_MODULE定义为全局套件的名称,因此也定义BOOST_TEST_MAIN以获得main的单个实现。
这是我需要在我的文件重写中注意的微妙之处。
发布于 2020-05-09 13:21:07
在testXXX.cpp中不应该包含testXXX.h。
所有testXXX.h文件都应该包含在main.cpp中,其中应该包含#define BOOST_TEST_MODULE TestXXXXXXXXX
https://stackoverflow.com/questions/22328644
复制相似问题