如何在boost.test库中执行指定的测试套件

时间:2010-09-01 07:47:50

标签: unit-testing testing boost test-suite

我正在使用Boost.Test库来实现C ++中的单元测试用例。假设我有两个套件,如

BOOST_AUTO_TEST_SUITE(TestA)
BOOST_AUTO_TEST_CASE(CorrectAddition)
{
BOOST_CHECK_EQUAL(2+2, 4);
}

BOOST_AUTO_TEST_CASE(WrongAddition)
{
    BOOST_CHECK_EQUAL(2 + 2, 5);
}

BOOST_AUTO_TEST_SUITE_END()

BOOST_AUTO_TEST_SUITE(TestB)
BOOST_AUTO_TEST_CASE(CorrectAddition)
{
bool ret = true;
    BOOST_CHECK_EQUAL(ret, true);
}
BOOST_AUTO_TEST_CASE(WrongAddition)
{
    BOOST_CHECK_EQUAL(2 + 2, 5);
}
BOOST_AUTO_TEST_SUITE_END() 

我想只运行套件'TestB',我该如何执行它。 我真的很感谢你的时间和帮助。很抱歉,如果此问题已发布或记录在其他位置。

2 个答案:

答案 0 :(得分:2)

假设您正在使用库提供的主入口点,命令行解析等,并且尚未自行推送,您可以通过命令行开关按名称或模式选择特定的测试套件和测试用例在运行时。

请参阅this page in the documentation以获得一个好例子。

答案 1 :(得分:1)

遵循此documentation,OP应使用以下参数调用单元测试可执行文件

--run_test=TestB

仅运行测试套件TestB的单元测试。

如果应运行所有测试套件的单元测试CorrectAddition,则参数为

--run_test=*/CorrectAddition

Boost.Test的通配符功能非常强大,因此该参数也可以写为

--run_test=*/C*