Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

SubUnit - это протокол потоковой передачи результатов тестирования, который обеспечивает связь между модульными тестами и тестовой оснасткой . Первоначально он был разработан Робертом Коллинзом для модульного тестирования в 2005 году. Subunit поставляется с фильтрами командной строки для обработки потока SubUnit и языковых привязок для Python , C , C ++ и Shell. Привязки легко писать для других языков.

С помощью SubUnit можно легко сделать ряд полезных вещей:

  • Агрегирование тестов: тесты, запускаемые по отдельности, можно объединить, а затем сообщать / отображать вместе.
  • Архивирование теста : тестовый запуск может быть записан и воспроизведен позже.
  • Изоляция тестов: тесты, которые могут дать сбой или иным образом плохо взаимодействовать друг с другом, можно запускать отдельно, а затем агрегировать.
  • Grid-тестирование : SubUnit может действовать как необходимая сериализация и десериализация, чтобы запускать тестовые прогоны на распределенных машинах, о которых будет сообщаться в реальном времени.

Версии [ править ]

Есть две основные версии протокола. Версия 1 была тривиально удобна для чтения человеком, но имела значительные дефекты в том, что касалось высокопараллельного тестирования - в ней не было места для параллельного обнаружения и выполнения, требовалась значительная буферизация при мультиплексировании и она была хрупкой - поврежденный байт мог привести к потере целого потока неправильно проанализированы. В версии 1.1 добавлена ​​инкапсуляция двоичных потоков, которая устраняет некоторые проблемы, но ядро ​​осталось.

Версия 2 обладает многими хорошими характеристиками версии 1 - ее можно встроить в обычный текстовый поток (например, из системы сборки), и она по-прежнему моделирует выполнение тестов в стиле xUnit . Он также устраняет многие проблемы с версией 1 - версия 2 может быть мультиплексирована без чрезмерной буферизации (во времени или пространстве), она имеет четко определенный механизм восстановления для работы с поврежденными потоками (например, когда два процесса одновременно записывают в один и тот же поток, или где генератор потока страдает ошибкой).

Примеры использования [ править ]

Вот пример общего формата SubUnit:

Время :  2016 - 03 - 24  21 : 05 : 38,652075 Z тест :  MyTest . SampleTestCase . RunTest  недостаточность :  MyTest . SampleTestCase . RunTest  [  Traceback  ( самый  недавний  вызов в  прошлом ):  Файл  "/media/windows/dev/java/qaworkspace/pythonnosetests/src/mytest.py" ,  строка  11 ,  в  RunTest  себя . assertEqual (Len ( ы ),  4 ,  'Неправильная длина' )  AssertionError :  Неправильный  длина  ]  Время :  2011 - 05 - 2322 : 49 : 38,858163 Z

Внешние ссылки [ править ]