BOOST_DATA_TEST_CASE 的自定义名称

问题描述 投票:0回答:1

使用 googletest,您可以根据使用 INSTANTIATE_TEST_SUITE_P 中最后一个参数的参数来命名参数化测试。

现在我使用的是

BOOST_DATA_TEST_CASE
,测试目前被命名为_0,...,_N,这使得它们很难区分。有没有什么方法可以以与 googletests 参数化测试类似的方式命名 boost 测试?

boost googletest boost-test
1个回答
0
投票

您可以通过这种方式手动创建信息更丰富的测试名称

std::string getTestName()
{
    namespace b = boost::unit_test::framework;
    auto testName = b::current_test_case().p_name.get();
    if (testName[0] != '_')
        return testName;

    // data driven tests have names like "_0" or "_1"
    auto parentId = b::current_test_case().p_parent_id;
    auto parentName = b::get(parentId, boost::unit_test::TUT_ANY).p_name.get();
    return parentName + testName;
}

BOOST_DATA_TEST_CASE(dataDrivenTest, boost::unit_test::data::make({ 1, 2 }), theValue)
{
    std::cout << getTestName() << std::endl;
    BOOST_TEST(theValue > 0);
}

测试的输出现在显示为

dataDrivenTest_0
dataDrivenTest_1
© www.soinside.com 2019 - 2024. All rights reserved.