Настройка юнит-тестов TeamCity + NUnit для правильной загрузки файлов - PullRequest
0 голосов
/ 27 марта 2010

В двух словах, у меня есть решение, которое прекрасно работает в 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 в код, а не загружать их из файла. Я бы предпочел не делать этого.

1 Ответ

2 голосов
/ 27 марта 2010

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

...