App.config замены для модульных тестов - PullRequest
12 голосов
/ 23 февраля 2011

мой сервер непрерывной интеграции (TeamCity) настроен на запуск всех модульных тестов в нашем приложении при сборке.Прежде чем запускать эти тесты, мне нужно изменить некоторые из appSettings, чтобы сделать их действительными для нашего CI-сервера.Я достигаю чего-то подобного для своего веб-проекта с помощью проекта развертывания, поставляемого с Visual Studio.Могу ли я сделать то же самое для тестового проекта?

Спасибо, Гонсало

Ответы [ 3 ]

28 голосов
/ 23 февраля 2011

Можно использовать преобразования Web.config для файлов App.config через обходной путь.

Вам просто нужно вызвать соответствующие задачи MSBuild на правильном этапе процесса сборки.
Добавьте этот фрагмент кода в файл проекта:

<UsingTask
    TaskName="TransformXml"
    AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />

<Target Name="AfterCompile" Condition="exists('App.$(Configuration).config')">
    <!-- Generates the transformed App.config in the intermediate directory -->
    <TransformXml
        Source="App.config"
        Destination="$(IntermediateOutputPath)$(TargetFileName).config"
        Transform="App.$(Configuration).config" />
    <!-- Forces the build process to use the transformed configuration file -->
    <ItemGroup>
        <AppConfigWithTargetPath Remove="App.config"/>
        <AppConfigWithTargetPath
            Include="$(IntermediateOutputPath)$(TargetFileName).config">
            <TargetPath>$(TargetFileName).config</TargetPath>
        </AppConfigWithTargetPath>
    </ItemGroup>
</Target>

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

<ItemGroup>
    <None Include="App.config" />
    <None Include="App.Release.config">
        <DependentUpon>App.config</DependentUpon>
    </None>
</ItemGroup>

Связанные ресурсы:

7 голосов
/ 30 января 2012

Я создал надстройку Visual Studio, которую можно использовать для преобразования app.config так же, как преобразовывается web.config.Вы можете найти надстройку SlowCheetah по адресу http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5.

. Я разместил блог о том, как заставить это работать и на сервере сборки .

6 голосов
/ 23 февраля 2011

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

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