运行 Boost.Test 没有调用 main 方法
Running Boost.Test without main method invocation
我正在尝试测试我的部分代码。我写了以下 test.h
文件:
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE(my_test) {
BOOST_CHECK(true);
}
如果我 运行 测试,我的应用程序的主要方法被调用,并且由于缺少命令行参数,它终止。我只想按原样 运行 测试套件并成功,因为 true
上的 BOOST_CHECK
应该是通过的测试。一旦成功,我会从我的代码库中一个一个地添加对函数的调用以进行回归测试。这可能吗?如果是,如何?
This post 建议将以下定义添加到 test.h
文件的顶部,但它不适用于跳过 main 方法调用:
#define BOOST_TEST_NO_MAIN true
BOOST_TEST_NO_MAIN
使 Boost.Test 省略了它自己的主要功能,因此它将回退到应用程序的主要功能。
在你的单元测试中,不要 link 应用程序的 main 函数(不要添加包含 main
的文件),让 Boost.Test 添加它自己的 main,它将 运行 你所有的测试。
我正在尝试测试我的部分代码。我写了以下 test.h
文件:
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE(my_test) {
BOOST_CHECK(true);
}
如果我 运行 测试,我的应用程序的主要方法被调用,并且由于缺少命令行参数,它终止。我只想按原样 运行 测试套件并成功,因为 true
上的 BOOST_CHECK
应该是通过的测试。一旦成功,我会从我的代码库中一个一个地添加对函数的调用以进行回归测试。这可能吗?如果是,如何?
This post 建议将以下定义添加到 test.h
文件的顶部,但它不适用于跳过 main 方法调用:
#define BOOST_TEST_NO_MAIN true
BOOST_TEST_NO_MAIN
使 Boost.Test 省略了它自己的主要功能,因此它将回退到应用程序的主要功能。
在你的单元测试中,不要 link 应用程序的 main 函数(不要添加包含 main
的文件),让 Boost.Test 添加它自己的 main,它将 运行 你所有的测试。