使用 googletest,您可以根据使用 INSTANTIATE_TEST_SUITE_P 中最后一个参数的参数来命名参数化测试。
现在我使用的是
BOOST_DATA_TEST_CASE
,测试目前被命名为_0,...,_N,这使得它们很难区分。有没有什么方法可以以与 googletests 参数化测试类似的方式命名 boost 测试?
您可以通过这种方式手动创建信息更丰富的测试名称
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