如何设置要运行的Boost单元测试

Art*_*hur 3 c++ unit-testing program-entry-point boost-test

我正在尝试使用升压测试,特别是升压单元测试.

我显然不明白主要函数是如何生成和调用的,所有教程都说是定义一个模块并编写一个测试

#define BOOST_TEST_MODULE EnfTraderTest

BOOST_AUTO_TEST_CASE(CalculateExpectedPriceTest){BOOST_ERROR("Oops");}

但是,我怎么说我的程序运行这个测试?我已经有了main函数,我想从我的main函数决定是否运行测试.

Bjö*_*lex 5

最简单的方法是将测试编写到一个.cpp文件中,并BOOST_TEST_MODULE在包含之前定义宏unit_test.hpp.然后,您可以编译该.cpp文件并执行它.如果您在多个.cpp文件中进行测试,只需将它们全部链接在一起,但要注意其中一个BOOST_TEST_MODULEBOOST_TEST_MAIN仅在其中一个中定义.

您可以使用命令行参数run_test 仅运行测试的子集,默认是运行所有测试.

  • 关于`run_test`的注意事项:如果你使用通配符(例如`--run_test=*foo*`),根据你的shell,你可能需要对通配符进行转义(例如`--run_test=\*foo\*`) . 这只是发生在我身上的 `zsh`。 (3认同)