Запуск модульных тестов из VS2008 против использования mstest в командной строке - PullRequest
2 голосов
/ 24 июля 2009

Недавно я столкнулся с некоторыми несоответствиями в выполнении модульных тестов в VS2008 по сравнению с выполнением тех же модульных тестов с mstest в командной строке.

Мой сценарий немного продвинут, поэтому я, вероятно, попал в некоторые моменты. У меня много управляемых данными модульных тестов, работающих на одном и том же источнике данных. Мне также нравится экспериментировать с PostSharp. Итак, я написал аспект PostSharp - TestDataSource - который я применяю к типу модульных тестов, а не к методам модульных тестов. Когда тип построен, этот аспект предписывает PostSharp прикрепить атрибут DataSource к каждому методу модульного теста в типе.

Изучение встроенной сборки в Reflector показывает, что каждый метод теста действительно связан справильный DataSource атрибут. Выполнение тестов с mstest в командной строке ведет себя как ожидалось - каждый тест запускается с указанным источником данных.

Однако выполнение точно таких же модульных тестов в VS2008 не может найти источник данных. Как будто VS2008 игнорирует встроенную сборку и просматривает исходный код, который, конечно, не является тестом, управляемым данными, потому что атрибут DataSource внедряется во время сборки.

ТамНет проблем с развернутыми предметами. Прикрепление DataSource вручную к тестам заставляет VS2008 успешно их выполнять.

Есть идеи?

1 Ответ

0 голосов
/ 24 июля 2009

Если вы поставили точку останова в своем тесте и проверили список загруженных модулей, вы должны увидеть точный путь сборки, которую вы отлаживаете. Это ожидаемый (в bin \ Debug)? Если вы открываете этот файл с помощью Reflector во время работы отладчика, вы видите внутри что-то из PostSharp?

Что странного в том, что часть модульных тестов PostSharp написана для MSTest и без проблем запускается из Visual Studio .. .

...