1

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

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE(my_test) {
    BOOST_CHECK(true);
}

如果我运行测试,我的应用程序的 main 方法会被调用,并且由于缺少命令行参数,它会终止。我只想按原样运行测试套件并成功,因为BOOST_CHECKontrue应该是通过的测试。一旦这工作,我会从我的代码库中一一添加对函数的调用以进行回归测试。这可能吗?如果是,如何?

这篇文章建议将以下定义添加到test.h文件顶部,但它不适用于跳过主方法调用:

#define BOOST_TEST_NO_MAIN true
4

1 回答 1

2

BOOST_TEST_NO_MAIN使得 Boost.Test 省略了它自己的 main 函数,因此它会回退到应用程序的 main 函数。

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

于 2018-12-28T12:35:20.177 回答