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

spr*_*sad 6 testing boost unit-testing 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() 
Run Code Online (Sandbox Code Playgroud)

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

CKE*_*CKE 6

根据本文档,OP应使用以下参数调用单元测试可执行文件

--run_test=TestB
Run Code Online (Sandbox Code Playgroud)

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

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

--run_test=*/CorrectAddition
Run Code Online (Sandbox Code Playgroud)

Boost.Test的通配符能力相当强大,因此参数也可以写成

--run_test=*/C*
Run Code Online (Sandbox Code Playgroud)


bjl*_*aub 2

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

请参阅文档中的此页面以获得一个很好的示例。