![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Suite-level decoratorsBoost , Boost.Test , Decorators
|
Код |
---|
<#defineBOOST_TEST_MODULEdecorator_02 #include<boost/test/included/unit_test.hpp> namespaceutf=boost::unit_test; BOOST_AUTO_TEST_SUITE(suite1,*utf::label("trivial")) BOOST_AUTO_TEST_CASE(test_case1) { BOOST_TEST(true); } BOOST_AUTO_TEST_CASE(test_case2) { BOOST_TEST(1==1); } BOOST_AUTO_TEST_SUITE_END()> |
выход |
---|
<>decorator_02--run_test=@trivial Running2testcases... ***Noerrorsdetected> |
Как декоратор тестового набора влияет на обработку тестовых блоков внутри него, зависит от декоратора и описывается для каждого декоратора в последующих разделах. Например, функция декоратора в приведенном выше примере заключается в том, что при фильтрации тестов по метки<"trivial"
>будет выполняться каждый тестовый блок в комплекте<suite1
>.
Тестовый пакет C++ может быть закрыт и вновь открыт в одном и том же тестовом файле или охватывать более одного файла, и вам разрешено применять различные декораторы в каждой точке, где открывается тестовый пакет. Если это так, то в списке декораторов, применяемом к тестовому набору, указан союз декораторов в каждом месте. Вот пример.
Код |
---|
<#defineBOOST_TEST_MODULEdecorator_03 #include<boost/test/included/unit_test.hpp> namespaceutf=boost::unit_test; BOOST_AUTO_TEST_SUITE(suite1,*utf::label("trivial")) BOOST_AUTO_TEST_CASE(test_case1) { BOOST_TEST(true); } BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(suite1,*utf::label("simple")) BOOST_AUTO_TEST_CASE(test_case2) { BOOST_TEST(true); } BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(suite1) BOOST_AUTO_TEST_CASE(test_case3) { BOOST_TEST(true); } BOOST_AUTO_TEST_SUITE_END()> |
выход |
---|
<>decorator_03--run_test=@trivial Running3testcases... ***Noerrorsdetected >decorator_03--run_test=@simple Running3testcases... ***Noerrorsdetected> |
В приведенном выше примере объем тестового набора<suite1
>открывается три раза. Это приводит к набору тестов, содержащему три тест-кейса и связанному с двумя декораторами<label
>. Таким образом, выполнение тестов по этикетке<"trivial"
>, а также по этикетке<"simple"
>приводит к выполнению всех трех тестовых случаев из набора.
![]() |
Caution |
---|---|
Вышеприведенный синтаксис для декораторов требует, чтобы компилятор поддерживал вариадные макросы (добавлен в C++11). Если вы хотите, чтобы ваша тестовая программа также работала для компиляторов без вариадных макросов, используйте явный синтаксис декоратора, описанный ниже. |
Статья Suite-level decorators раздела Boost.Test Decorators может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Decorators ::
реклама |