Лучшие практики для интеграционных тестов ресурса Path? - PullRequest
0 голосов
/ 29 ноября 2011

сегодня я создал новый проект сборки MS в jenkins, который содержит модульные тесты и интеграционные тесты.Прежде чем переместить проект в jenkins, я использовал свою локальную машину для запуска тестов (Nunit, Reshaper).

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

Как вы можете себе представить, это была небольшая проблема, когда я переместил проект в jenkins, потому что у меня не было файлов базы данных в том же месте.

Чтобы решить проблему прямо сейчас, я изменил некоторые методы SetUp () в моих интеграционных тестах.Они загружают папку из текстового файла, и эта папка указывает путь к ресурсу, где хранятся все мои необходимые файлы.Теперь я могу запускать тесты на Дженкинсе и моей локальной машине.

У меня плохое предчувствие по этому поводу, что-то не так, как надо.Что бы вы сделали, чтобы решить мою проблему?Дразнить файлы - не решение, я хочу взаимодействовать с файлами.

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Вообще, я думаю, что не стоит брать что-либо из файлов во время выполнения юнит-тестов.Особенно не рекомендуется брать что-либо из файлов txt / xml / etc, которые, как вы предполагаете, будут скопированы в папку debug.Различные модули модульного тестирования ведут себя по-разному, некоторые из них имеют опцию shadow copy, а в некоторых из них эта опция может быть включена по умолчанию.Shadow copy сделает почти невозможным поиск файлов не-dll в оригинальной папке Debug.

Я бы порекомендовал встроить все необходимые данные в тестовую сборку.Два способа сделать это:

  1. Жесткий код тестовых данных в виде строки в некотором классе.Затем запишите его в файл или используйте его напрямую.
  2. Добавление файлов в качестве ресурсов, которые будут встроены в тестовую сборку.
1 голос
/ 29 ноября 2011

Как насчет добавления файла тестовых данных в вашу систему контроля версий, а также в проект .net. Затем настройте их так, чтобы они были скопированы в директорию «out», и вы сможете получить к ним доступ в модульном тесте, поскольку они будут скопированы в эту папку с помощью msbuild.

...