使用Boost.Test我试图在代码中指定BOOST_TESTS_TO_RUN
环境变量,这样只会执行一些测试。使用#define BOOST_TESTS_TO_RUN
。
命令行参数--run_tests
正常工作。但我想通过环境变量来实现它,以便有一个main.cpp
,我可以在其中选择不同的套件和模块。
但我不确定如何指定它,或者在哪里。应该包括提升之前吗?如果我有不同的cpp文件和不同的测试套件怎么办?
module_A.cpp
#include "SomeHeader.h"
#define BOOST_TESTS_TO_RUN // ??
#include "boost/test/unit_test.hpp"
BOOST_AUTO_TEST_SUITE( moduleA );
BOOST_AUTO_TEST_CASE( test1 ){}
BOOST_AUTO_TEST_CASE( test2 ){}
BOOST_AUTO_TEST_CASE( test3 ){}
BOOST_AUTO_TEST_SUITE_END();
答案 0 :(得分:0)
Boost UTF不是那样设计的。如果您确实希望从代码中启用/禁用某些测试,则可以对所有测试使用手动注册并定义主测试套件,您需要手动注册所有测试。请参阅master-test-suite文档和有关手动测试注册的其他页面。然后,您可以评论某些您不想运行的测试。
但是,我不推荐这种方法。忘记测试太容易了,因此难以维护。对于调试,您可以轻松地手动运行测试可执行文件并使用命令行参数。
答案 1 :(得分:0)
检查--run_test的新文档,该文档解释了环境变量BOOST_TEST_RUN_FILTERS
可以用于此目的(也存在于上一版本的boost中,但环境变量的使用情况不太明显。 DOC)。
基本上,您只使用所有测试(默认情况下启用)编译main.cpp
一次,然后从BOOST_TEST_RUN_FILTERS
环境变量中选择性地运行它们。
我没有看到这样做的问题,特别是wrt。 boost.test的设计。