Как запустить nunit-тесты, упорядоченные по категориям в одном и том же пространстве имен, без смешанных тестов? - PullRequest
0 голосов
/ 29 июня 2011

Мой вопрос таков:

У меня есть количество, если тестовые случаи в одном и том же пространстве имен, эти тестовые случаи классифицированы по категориям A и B, мне нужно запустить сначала категорию A, а затем категорию B.

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

Например, у меня есть тестовые случаи:

  • WhenUserTriesToAddLineItemGroup [Cateogry B]
  • WhenUserTriesToCreateTopic [Cateogry A]
  • WhenUserTriesToCreateAreas [Cateogry A]

Мне нужно запустить сначала: WhenUserTriesToCreateTopic и WhenUserTriesToCreateAreas и второе: WhenUserTriesToAddLineItemGroup

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

Спасибо !!

1 Ответ

1 голос
/ 29 июня 2011

NUnit построен на том, что любой отдельный тест является полностью автономным.Если у вас есть вещи, которые необходимо выполнить до запуска теста, они могут быть помещены в метод SetUp, и если у вашего теста есть какие-либо побочные эффекты, у вас может быть метод TearDown, чтобы отменить эти побочные эффекты., но в противном случае предполагается, что любой отдельный тест может быть выполнен в любое время, и что порядок тестирования не имеет значения.Это имеет несколько преимуществ для разработчиков, поскольку вы можете запускать любой набор тестов, не беспокоясь об их предварительных условиях, а условие прохождения / сбоя одного теста не зависит от условия прохождения / сбоя другого теста.

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

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

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