Можно ли в mstest сделать заводские тесты, как в MbUnit?

Мы используем mstest для модульных тестов в нашей компании. Основная причина в том, что нет бесплатной интеграции Visual Studio для MbUnit (TestDriven.NET не является бесплатным для компаний).

Недавно я столкнулся с необходимостью запускать одни и те же модульные тесты на двух разных реализациях одного и того же интерфейса. Из моего прошлого опыта я знаю, что это легко сделать с помощью MbUnit. Но как это сделать с помощью MSTest?

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

Я знаю о решении, управляемом данными, и использую его сейчас, но это заноза в заднице. Есть ли более простой способ, способ MbUnit?

Спасибо.


person mark    schedule 23.07.2009    source источник


Ответы (1)


Я не знаю элегантного способа сделать это в MSTest, кроме использования его функций тестирования на основе данных. Однако вы можете попробовать использовать абстрактный базовый класс для своего тестового устройства, а затем создать его подкласс для каждого тестируемого интерфейса.

Кстати, Gallio предоставляет бесплатную интеграцию с инструментами тестирования Visual Studio. Мы также собираемся возобновить работу над другой надстройкой для Visual Studio в составе Gallio v3.2.

person Jeff Brown    schedule 25.07.2009
comment
Привет Джефф. Я решил попробовать, поэтому скачал Gallio. Однако я не нахожу CombinatorialTestAttribute при просмотре сборки MbUnit.dll с помощью Reflector. Где я могу найти его? - person mark; 01.08.2009
comment
Нашел его в MbUnit.Framework.dll в папке MbUnit2. Означает ли это, что MbUnit v3 не поддерживает комбинаторные тесты? Есть ли место, где я могу прочитать об этом? - person mark; 01.08.2009
comment
У него просто другой синтаксис в v3. Для комбинаторного теста просто свяжите источники данных с отдельными параметрами теста. [Test] public void MyTest([Column(1, 2, 3)] int number, [Column('a', 'b', 'c')] char letter) {...} Другие примеры вы найдете здесь : blog.bits-in-motion .com/2008/05/ - person Jeff Brown; 06.08.2009