Как выполнить указанные наборы тестов в библиотеке boost.test

Я использую библиотеку Boost.Test для реализации модульных тестов на С++. Предположим, у меня есть два набора, такие как

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», как мне его выполнить. Я действительно благодарю за ваше время и помощь. Извините, если этот вопрос был опубликован или задокументирован в другом месте.


person sprasad    schedule 01.09.2010    source источник


Ответы (2)


Предполагая, что вы используете основную точку входа, предоставленную библиотекой, синтаксический анализ командной строки и т. д., и не накатывали свои собственные, вы можете выбирать определенные наборы тестов и тестовые наборы по имени или шаблону с помощью переключателя командной строки во время выполнения. .

См. эту страницу в документации в качестве хорошего примера.

person bjlaub    schedule 01.09.2010

Соответствовать этому documentation, OP должен вызвать исполняемый модуль модульного теста со следующим параметром

--run_test=TestB

запускать только модульные тесты набора тестов TestB.

Если модульный тест CorrectAddition всех наборов тестов должен быть запущен, тогда параметр

--run_test=*/CorrectAddition

Способность Boost.Test с подстановочными знаками довольно мощная, поэтому параметр также можно записать как

--run_test=*/C*
person CKE    schedule 09.04.2020