Как mstest.exe относится к файлу конфигурации тестовой DLL? - PullRequest
4 голосов
/ 11 апреля 2011

Я немного озадачен тем, как mstest.exe обрабатывает файл app.config тестовой DLL.

Экспериментальный проект 1:

  • Тривиальная нетестовая DLL. (Он ничего не делает, кроме как читает и печатает значение параметра приложения из своего собственного файла app.config.)

  • Основной файл EXE, который вызывает библиотеку DLL для печати своего значения конфигурации.

Экспериментальный проект 2:

  • DLL модульного тестирования, которая содержит только один метод тестирования для чтения значения параметра приложения из его собственного файла app.config и записи его в файл.

  • Я использую mstest.exe для вызова DLL модульного теста.

Результат:

Для 1. Значение конфигурации DLL не печатается.

Для 2. Собственное значение конфигурации DLL успешно считывается и записывается в файл.

Итак, есть ли что-то особенное в mstest.exe ?

Спасибо.


Я использую SOS.dll для отладки через мою DLL модульного теста. Я обнаружил, что для каждой из DLL модульного теста создается отдельный домен приложений. И эти домены приложений отличаются от тех, которые называются vstesthost.exe . Я считаю, что конфигурация специфична для домена приложения . Mstest.exe создаст домен приложения для каждой тестовой библиотеки DLL и загрузит свой собственный файл конфигурации в домен приложения, соответственно.

Надеюсь, кто-нибудь сможет дать более уверенное объяснение.


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

AppDomainSetup ad2setup = new AppDomainSetup ();

ad2setup.ConfigurationFile = @ "config путь к файлу ";

1 Ответ

1 голос
/ 11 апреля 2011

Да, в mstest.exe есть что-то особенное. Он скопирует все ссылки dll в другой каталог и выполнит их оттуда (я не уверен, почему это происходит, поскольку такие инструменты, как NCover, просто запускают тесты из папки bin). Из-за этого вам придется настраивать все, что вы хотите скопировать, кроме DLL. Стандартный способ сделать это - указать элементы развертывания в файле .testrunconfig. Вы можете сделать это, перейдя в Test / Edit Configuration Runs Configurations / Deployment. Вы можете использовать кнопку «Добавить файл ...» для добавления файла конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...