Мы используем VS2012 и TFS2012 и записываем единичные тесты для нашего кода. Мы хотим сообщить о покрытии кода, а также использовать файлы .config в наших модульных тестах для тестовых настроек, а также некоторые другие настройки для ведения журнала, настройки библиотеки MS Enterprise и т.д.
App.config не работает в новой тестовой среде
Новая тестовая структура MS должна быть отличной, но для меня это не так уж и больно. Как я могу установить базовую конфигурацию в файлах конфигурации, когда новая среда больше не использует файлы конфигурации?
У нас возникла проблема с DLL смешанного режима и найдено исправление: добавление
<startup useLegacyV2RuntimeActivationPolicy="true">
в app.config. Но это не сработало для нашего проекта unit test. Конфигурационных файлов Becuase больше нет. Поиск в Интернете придумал решение
'Проблемы с сетями смешанного режима .Net 2.0 внутри Visual Studio.Net 4.5 тестовых проектов
Это означает редактирование файла самой Visual Studio 11 в каталоге файлов программ, а не отличное решение, которое я думаю....
А как насчет некоторых базовых приложений? Как я должен установить это?
Не используйте файл .testSettings
Использование старого файла .testsettings также не рекомендуется MS, потому что используется старая тестовая среда. И если я использую файл .testsettings, я не могу установить Code Coverage в моей службе сборки tfs2012.
Другая проблема заключается в том, что у нас есть код, которому нужна dll (system.data.sqlite.dll), но только во время выполнения код unit test нуждается в этой dll. Поэтому ссылка не нужна. Мы исправили это, используя вкладку "Развертывание" в файле настроек тестов. Но в новой структуре вы не должны использовать файл testettings. У вас есть атрибут [deploymentitem], если вам нужны файлы. Но атрибут deploymentitem может использоваться только на [testmethod] не на методе [testinitialize] или [assemblyinitialize]. Но наш код нуждается в dll в методе [testinitialize]. Таким образом, нет возможности получить DLL на месте.
Просто скопируйте его с помощью File.Copy в методе [assemblyinitialize] (или testinitialize), который не работает.
Добавление DLL файла в проект и установление 'copy to output directory' в 'Copy Always', как указано в 'Конфигурирование модульных тестов, используя Файл .runsettings File 'также не работает вообще.
Решение (действительно не очень) для этого заключается в том, чтобы добавить dll в качестве ссылки, а затем создать экземпляр класса и не делать с ним ничего. Таким образом, dll требуется, иначе он не будет создан, и, следовательно, dll развернется в нужные каталоги.
как решить мою проблему (ы)??? - Я хочу использовать конфигурационные файлы в моем unit test. - Я хочу развернуть некоторые файлы, которые нуждаются в методах 'assemblyinitialise' и/или 'classinitialize'. - Я хочу, чтобы Code Coverage на моей ночной сборке TFS2012 включен.