2016-04-19 1 views
3

Мне нужна помощь в выполнении автоматических тестов пользовательского интерфейса путем непрерывной интеграции. У меня около 200 тестовых примеров, но они не написаны после некоторых хороших практик, и они зависят друг от друга. Я разработчик не QA, и я не знаю, что происходит в деталях, поэтому извините меня, если я не прав на что-то. Это то, что я могу видеть:Как я могу запускать автоматические тесты UD с использованием NUnit и SpecFlow в определенном порядке, определяемые категориями

1. The tests are BDD 
2. They are written with SpecFlow 
3. NUnit is used as test executor 

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

Я вижу, что NUnit работают тесты в алфавитном порядке, но это не решает мою проблему из-за:

  • QA вставлял случаи логически категории
  • Когда тесты написаны для того, чтобы избежать дублирования кода по ОК было вставлено несколько случаев в той же категории - например: у нас есть категория CAT и категории DOG и тест, который называется checkSound Этот тестовый пример включен в обе категории CAT и DOG.

Проблема возникает, когда я пытаюсь нажать Выполнить все тесты

Ожидаемый результат: тесты должны пройти

Фактический результат является: тесты терпят неудачу

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

Я попытался установить имена тестов в автогенерированном файле .cs с атрибутом [NUnit.Framework.TestCase (TestName = "01")], но без успеха.

Я также попытался переименовать категории, но также и сбой.

Я видел, что есть атрибут [NUnit.Framework.IncludeExclude()], но я не уверен, что это правильный способ изменения файла с автогенерированным дизайном.

Это подталкивает меня к тому, чтобы спросить в stackoverflow о каком-то другом мнении опытного QA.

Я по достоинству оцените вашу помощь!

ответ

2

Первое: Не редактировать сгенерированные .feature.cs файлы, и изменения будут заменены, когда они находятся рядом генерироваться

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

Самый простой способ сделать это, если у вас есть уже существующий набор тестов на фильтрацию, - это просто создать дополнительный шаг в тестах, которые имеют зависимости, которые вызывают те же действия, что и вызов зависимостей. См. this answer для примера того, как вызывать шаги с другого шага (Documentation).

Если это слишком большая работа, то один способ, которым вы можете получить то, что хотите, - выполнить только определенную категорию тестов в CI, а затем, когда они будут завершены, запустите следующую категорию, затем следующую и т. Д. И т. Д. пока вы не выполнили все тесты. Это не идеально и является тупым инструментом, но, возможно, вы хотите, чтобы ваши тесты выполнялись.

Смежные вопросы