如何在代码中将 Boosts 测试定义为 运行?
How to define Boosts tests to run in code?
Using Boost.Test 我试图在代码中指定 BOOST_TESTS_TO_RUN
环境变量,这样只会执行一些测试。使用 #define BOOST_TESTS_TO_RUN
.
命令行参数--run_tests
工作正常。但是我想通过环境变量来完成它,以便有一个 main.cpp
,我可以在其中 select 不同的套件和模块。
但我不确定如何指定它,或者在哪里指定。应该在包括提升之前吗?如果我有不同的 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();
Boost UTF 不是那样设计的。如果您真的想 en-/disable 代码中的某些测试,您可以对所有测试使用手动注册并定义一个主测试套件,您需要在其中手动注册所有测试。请参阅 master-test-suite 文档和其他有关手动测试注册的页面。然后,您可以注释掉某些您不想 运行.
的测试
不过,我不推荐这种方法。忘记测试太容易了,因此更难维护。对于调试,您可以轻松地 运行 手动测试可执行文件并使用命令行参数。
改为查看 --run_test 的新文档,其中解释了环境变量 BOOST_TEST_RUN_FILTERS
可以用于此目的(也存在于以前版本的 boost 中,但环境变量的用法不太明显来自文档)。
基本上,您只编译 main.cpp
一次所有测试(默认启用),然后 运行 从 BOOST_TEST_RUN_FILTERS
环境变量中选择性地编译它们。
我认为这样做没有问题,尤其是 wrt。 boost.test.
的设计
Using Boost.Test 我试图在代码中指定 BOOST_TESTS_TO_RUN
环境变量,这样只会执行一些测试。使用 #define BOOST_TESTS_TO_RUN
.
命令行参数--run_tests
工作正常。但是我想通过环境变量来完成它,以便有一个 main.cpp
,我可以在其中 select 不同的套件和模块。
但我不确定如何指定它,或者在哪里指定。应该在包括提升之前吗?如果我有不同的 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();
Boost UTF 不是那样设计的。如果您真的想 en-/disable 代码中的某些测试,您可以对所有测试使用手动注册并定义一个主测试套件,您需要在其中手动注册所有测试。请参阅 master-test-suite 文档和其他有关手动测试注册的页面。然后,您可以注释掉某些您不想 运行.
的测试不过,我不推荐这种方法。忘记测试太容易了,因此更难维护。对于调试,您可以轻松地 运行 手动测试可执行文件并使用命令行参数。
改为查看 --run_test 的新文档,其中解释了环境变量 BOOST_TEST_RUN_FILTERS
可以用于此目的(也存在于以前版本的 boost 中,但环境变量的用法不太明显来自文档)。
基本上,您只编译 main.cpp
一次所有测试(默认启用),然后 运行 从 BOOST_TEST_RUN_FILTERS
环境变量中选择性地编译它们。
我认为这样做没有问题,尤其是 wrt。 boost.test.
的设计