2012-03-29 2 views
4

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

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

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

+1

возможно дубликат [Динамически создавать тесты в NUnit] (http://stackoverflow.com/questions/ 866816/динамически создавать тесты-в-NUnit) – dasblinkenlight

ответ

6

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

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

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

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