MSTest настройки командной строки

#c# #.net #unit-testing #continuous-integration #mstest

#c# #.net #модульное тестирование #непрерывная интеграция #mstest

Вопрос:

Нам нужно иметь возможность передавать адрес сервера в командную строку MSTest для нашего набора тестов, который вызывается программным обеспечением TeamCity Continuous Integration (CI).

Ранее мы создали константы #if в модульных тестах C #, которые внесли изменения в MSBuild.

Есть ли способ лучше? Этот способ кажется довольно взломанным.

Есть ли способ создать конфигурационные файлы и передать аргументы для использования в MSTest?

Ответ №1:

Я использую файл app.config в своем тестовом проекте для настройки своих тестов. Система управления версиями содержит app.config, используемый в TeamCity для запуска тестов.

При компиляции app.config копируется в папку bin и переименовывается в [assembly-name].config. Затем вы можете получить доступ к любым настройкам в файле .config из вашего тестового кода через ConfigurationManager.

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

Я нахожу это самым чистым подходом, потому что он записывает, как тесты настраиваются в системе управления версиями.

Если вам нужна большая гибкость, вы могли бы настроить дополнительный этап сборки в TeamCity для изменения файла .config по мере необходимости, используя некоторые преобразования XML или замены строк из пользовательского скрипта MSBuild.

Комментарии:

1. Я думаю, это сработает. Мне нужно будет создать несколько app.config и скопировать их, чтобы они были подходящими на этапе сборки.