Параметризованные в Nunit TestFixtures с параметрами, установленными во время выполнения?

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

В Nunit 2.5 они представили параметризованные тесты и тестовые приборы. Это позволяет вам написать один тест и запустить его с несколькими входами, предоставленными с использованием атрибута TestCase, и написать один тестовый класс и создать его несколько экземпляров с разными аргументами конструктора соответственно.

В дополнение к этому можно создать несколько тестовых случаев на основе вывода свойства или метода, используя атрибут TestCaseSource. Это будет использовать выходные данные метода / свойства, которое реализует IEnumerable, чтобы создать набор тестовых случаев, по одному на объект в списке. Это то, что я хотел бы сделать, но на уровне прибора, а не на уровне теста.


Некоторые предпосылки моего варианта использования:

Я тестирую программное обеспечение для моделирования и «среду моделирования», которая должен быть загружен (из сериализованного объекта), прежде чем можно будет запустить какое-либо моделирование. Существует около 5 различных типов симов, поэтому в моем тестовом классе есть 5 методов тестирования (по одному для каждого типа сима). Я' Я в настоящее время использую наследование (вместо параметризованных приборов) для запуска тестовых случаев в нескольких (полдюжине или около того) средах моделирования, которые были взяты из производственных данных.

Моя проблема проистекает из того факта, что в недавней попытке Чтобы увеличить охват кода, мы автоматически сгенерировали все возможные комбинации компонентов моделирования, что привело к созданию более 100 сим-сред. Я не хочу создавать унаследованные классы для каждого из них, поэтому вместо этого я использую TestCaseSource со свойством, которое возвращает все рабочие пространства в папке, и изменяю тесты, чтобы они (повторно) загружали среду sim в самом тесте для каждый тестовый сценарий.

В идеале я хотел бы иметь один прибор для каждой среды моделирования и определить, сколько / сколько это во время выполнения. Я знаю, что могу сделать первое с помощью жесткого кодирования путей среды сима в более 100 атрибутов TestFixture. Могу ли я сделать последнее?

5
задан imoatama 31 August 2010 в 02:08
поделиться