Динамические тесты - PullRequest
       34

Динамические тесты

4 голосов
/ 29 марта 2012

Мы используем NUnit для запуска наших интеграционных тестов.Один из тестов должен всегда делать то же самое, но принимать разные входные параметры.К сожалению, мы не можем использовать атрибут [TestCase], потому что наши тестовые случаи хранятся во внешнем хранилище.У нас есть динамические тестовые случаи, которые могут быть добавлены, удалены или отключены (не удалены) нашими инженерами по обеспечению качества.Сотрудники QA не имеют возможности добавлять атрибуты [TestCase] ​​в наш код C #.Все, что они могут сделать, это добавить их в хранилище.

Моя цель - прочитать тестовые примеры из хранилища в память, запустить тест со всеми включенными тестовыми примерами, сообщить, что тестовый случай провалился.Я не могу использовать оператор «foreach», потому что если тестовый пример № 1 не пройден, остальные тестовые случаи не будут выполняться вообще.У нас уже есть сервер сборки (CruiseControl.net), на котором отображаются сгенерированные отчеты NUnit, поэтому я хотел бы продолжить использование NUnit.

Не могли бы вы указать, как мне достичь своей цели?Спасибо.

1 Ответ

6 голосов
/ 29 марта 2012

Вы можете использовать [TestCaseSource("PropertyName")\], который задает свойство (или метод и т. Д.) Для загрузки данных из.

Например, у меня есть тестовый пример в Noda Time , который использует все часовые пояса BCL - и, конечно, может меняться со временем (и отличается от Mono), и я вообще не изменяю код.

Просто заставьте ваше свойство / член загрузить тестданные в коллекцию, и вы ушли.

(я всегда использовал свойства, но, похоже, он должен хорошо работать и с методами.)

...