Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Managing test dependencies

Boost , Boost.Test , Declaring and organizing tests

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

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

Единственная гарантия, связанная с заказом, которую по умолчанию дает Unit Test Framework, заключается в том, что в тестовых случаях TA и TB заявлены в одном и том же тестовом наборе, ни один тестовый случай (называйте его TX) из любого другого тестового набора не выполняется между TA и TB, даже если декларация TX появляется между декларациями TA и TB. Другими словами, все тесты из набора выполняются за один раз, даже если пространство имен тестового набора открывается несколько раз.

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

Declaring a test case dependency

Если требуется зависимость заказа между испытательными блоками в пределах одного набора, она должна быть объявлена явно. Зависимости в Unit Test Framework влияют на два измерения тестовых блоков:

  • порядок исполнения этих единиц
  • выполнение испытательного блока, которое обусловлено состоянием его родителей

Decorator depends_on связывает украшенный тестовый корпус (назовите его TB) с другим тестовым случаем (назовите его TA), указанным по имени. Это влияет на обработку тест-дерева двумя способами. Во-первых, тестовый случай TA запускается до TB, независимо от того, в каком порядке они были объявлены или добавлены в тестовое дерево. Во-вторых, выполнение TB пропускается, если TA либо отключено, либо пропущено, либо выполнено и помечено как неудачное.

Example: decorator depends_on

Код

#define BOOST_TEST_MODULE decorator_07#включает//включен/unit_testhpp>namespaceutfboost::unit_test/test1 и test2, определенные внизу BOOST_AUTO_TEST_CASEBOOST_TEST;:2>BOOST_TEST_TEST;BOOST_AUTO_TEST_CASEBOOST_TEST_CASEBOOST_TEST_CASEBOOST_TEST_TESTBOOST_TEST_SUITE_END>BOOST_TEST_TEST1>2>1>2>2>1>2

Выход

> неудавшийся  неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся   неудавшийся  неудавшийся  неудавшийся  неудавшийся  неудавшийся 

В вышеприведенном сценарии тестовый случай test3 запускается (и терпит неудачу), потому что s1/test1 был запущен и удался; test4 пропущен, потому что test3 провалился; test5 пропущен, потому что s1/test2 отключен.


PrevUpHomeNext

Статья Managing test dependencies раздела Boost.Test Declaring and organizing tests может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Declaring and organizing tests ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:02:38/0.0091090202331543/1