C++ 在不调用主方法的情况下运行Boost.Test

C++ 在不调用主方法的情况下运行Boost.Test,c++,linux,boost,clion,boost.test,C++,Linux,Boost,Clion,Boost.test,我正在尝试测试我的部分代码。我编写了以下test.h文件: #include <boost/test/unit_test.hpp> BOOST_AUTO_TEST_CASE(my_test) { BOOST_CHECK(true); } BOOST\u TEST\u NO\u MAIN使BOOST.TEST忽略了它自己的主功能,因此它将返回到应用程序主功能 在单元测试中,不要链接应用程序的main函数(不要添加包含main的文件),让Boost.Test添加自己的main

我正在尝试测试我的部分代码。我编写了以下
test.h
文件:

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE(my_test) {
    BOOST_CHECK(true);
}

BOOST\u TEST\u NO\u MAIN
使BOOST.TEST忽略了它自己的主功能,因此它将返回到应用程序主功能


在单元测试中,不要链接应用程序的main函数(不要添加包含
main的文件),让Boost.Test添加自己的main,它将运行所有测试。

简单地
#定义Boost\u Test\u NO\u main
怎么样。它是在包含之前定义的吗?有帮助吗?这可能有效,但我不想修改我的
CMakeLists.txt
文件或任何其他文件来运行测试。我注意到,只有在注释掉我原来的
main
方法以避免重复定义
main
时,才可以使用另一个框架,如
Catch
。我来自
Java
的背景,在那里运行不同的测试源文件,每个文件都有一个入口点,可以共存,这非常方便。@plaza:嗯,这里不是这样的。让你的主要功能变得非常小,例如:简单地调用你的应用程序“main”,那么你就不会有这个问题。
#define BOOST_TEST_NO_MAIN true