我需要在当前单元的开头运行一个测试单元。 我尝试了BOOST_TEST_INVOKE_IF_N_ARGS,但没有结果。
答案 0 :(得分:3)
装饰器
depends_on
将修饰的测试用例(称为TB)与名称指定的另一个测试用例(称为TA)相关联。这以两种方式影响测试树的处理。首先,测试用例TA被命令在TB之前运行,而不管它们声明或添加到测试树的顺序如何。其次,如果禁用或跳过了TA或将其执行并标记为失败,则会跳过TB的执行。
#define BOOST_TEST_MODULE decorator_07
#include <boost/test/included/unit_test.hpp>
namespace utf = boost::unit_test;
// test1 and test2 defined at the bottom
BOOST_AUTO_TEST_CASE(test3, * utf::depends_on("s1/test1"))
{
BOOST_TEST(false);
}
BOOST_AUTO_TEST_CASE(test4, * utf::depends_on("test3"))
{
BOOST_TEST(false);
}
BOOST_AUTO_TEST_CASE(test5, * utf::depends_on("s1/test2"))
{
BOOST_TEST(false);
}
BOOST_AUTO_TEST_SUITE(s1)
BOOST_AUTO_TEST_CASE(test1)
{
BOOST_TEST(true);
}
BOOST_AUTO_TEST_CASE(test2, * utf::disabled())
{
BOOST_TEST(false);
}
BOOST_AUTO_TEST_SUITE_END()
打印
> decorator_07 --report_level=detailed
Running 4 test cases...
test.cpp(10): error: in "test3": check false has failed
Test module "decorator_07" has failed with:
1 test case out of 4 passed
1 test case out of 4 failed
2 test cases out of 4 skipped
1 assertion out of 2 passed
1 assertion out of 2 failed
Test case "test3" has failed with:
1 assertion out of 1 failed
Test case "test4" was skipped
Test case "test5" was skipped
Test suite "s1" has passed with:
1 test case out of 1 passed
1 assertion out of 1 passed
Test case "s1/test1" has passed with:
1 assertion out of 1 passed