Создание автоматических тестов для встроенного ресурса в Visual Studio и Team Build? - PullRequest
0 голосов
/ 11 октября 2011

В моем текущем решении .Net 4.0 у меня есть один проект, содержащий множество XML-файлов в качестве встроенных ресурсов. В этих файлах ведется активная деятельность по разработке, и есть очень реальный шанс, что один из разработчиков в моей команде забудет установить действие сборки конкретного файла XML для встроенного ресурса.

Что я сделал для того, чтобы этого не произошло, и что прекрасно работает для локальных сборок в VS2010, так это для создания автоматического теста в NUnit, который подсчитывает количество ресурсов с помощью Assembly.GetManifestResourceNames(), а затем сравнивает это с файлом посчитайте в правильном поддереве исходного каталога моей сборки ресурсов. Если они совпадают, это означает, что для всех файлов действие сборки правильно установлено на «встроенный ресурс».

Теперь моя проблема в том, что мой тест использует относительный путь для поиска каталога файлов в проекте ресурса, и рабочий каталог не совпадает на сервере сборки (который использует TFS2010).

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

1 Ответ

2 голосов
/ 13 октября 2011

Хорошо, это решение, которое я выбрал:

  1. Тест проверяет определенную переменную среды, используя Environment.GetEnvironmentVariable и, если не задано, использует относительный путь, который работает на машинах разработки с использованием Visual Studio 2010, в противном случае он использует путь в среде переменная

  2. Для сервера сборки (Team Build) я установил аргумент для процесса сборки равным переменной окружения, а затем в своей задаче NUnit я установил переменным среды NUnit значение аргумента сборки.

Это решение упрощает настройку новых машин разработчиков, но может потребовать некоторой настройки агентов сборки, если они отличаются от настроек пути по умолчанию.

...