Настройка модульных тестов TeamCity + NUnit для правильной загрузки файлов

Короче говоря, у меня есть решение, которое отлично работает в среде IDE, и все модульные тесты отлично работают с графическим интерфейсом NUnit (через плагин NUnitit VS2008). Однако, когда я запускаю средство запуска сборки TeamCity, все модульные тесты, требующие доступа к файлам (например, для запуска тестов для определенных файлов XML), я просто получаю System.IO.DirectoryNotFoundExceptions.

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

Структура моих модульных тестов выглядит так:

+-- project folder
    +-- unit tests folder
        +-- test.xml
        +-- test.cs
    +-- project file.xaml
    +-- project file.xaml.cs

У всех моих проектов есть собственная папка UnitTests, которая содержит файл .cs и любые файлы XML, схемы XML и т. Д., Необходимые для запуска тестов.

Поэтому, когда я пишу свой test.cs, он ищет в коде "test.xml", потому что они находятся в одной папке (на самом деле я делаю что-то вроде .... \ unit tests \ test.xml, но это вроде глупо). Как я уже сказал, тесты в NUnit проходят отлично. Но это потому, что модульные тесты являются частью проекта. При запуске модульных тестов из TeamCity я выполняю их для сборок, которые копируются в папку вывода основного приложения. Эти XML-файлы модульного теста не следует не волей-неволей копировать в папку вывода только для того, чтобы тесты прошли успешно.

Может ли кто-нибудь предложить лучший метод организации моих модульных тестов в каждом проекте (которые являются зависимостями для основного приложения), чтобы я мог выполнять модульные тесты из NUnit и из средства запуска сборки TeamCity? Единственный другой вариант, который я могу придумать, - это просто поместить тестовые XML-данные в код, а не загружать их из файла. Я бы предпочел не делать этого.


person Dave    schedule 27.03.2010    source источник


Ответы (1)


Иногда лучше всего поспать над вопросом перед тем, как его опубликовать. Я должен был знать, что мне нужно просто ввести относительные пути к папке отладки проекта сборки. Проблема решена.

person Dave    schedule 27.03.2010