Ошибка конфигурации Log4Net, приводящая к сбою MSBuild - PullRequest
2 голосов
/ 01 февраля 2012

Я пытаюсь настроить среду CI на новом клиентском сайте, используя Team City, MSbuild и расширения сообщества сборки MS. Компиляция кода, кажется, работает нормально. Однако, когда я запускаю свои модульные тесты, я получаю следующую ошибку из задачи NUnit:

log4net : error XmlConfigurator: Failed to find configuration section 'log4net' in the   application's .config file.

Я определил два тестовых проекта, которые вызывают эту проблему. Тем не менее, я запускал тесты непосредственно из nunit-console и из reharper nunit test runner, и хотя я вижу предупреждение, тесты не терпят неудачу. Я не хочу ничего делать с файлом конфигурации Log4net или assembly.cs в любом проекте. Все, что я хочу сделать, это заставить скрипт MSBuild вести себя как Visual Studio, который не считает ошибку log4net ошибкой.

Вот файл сборки

    <?xml version="1.0" encoding="utf-8"?>
    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"      DefaultTargets="Compile">
    <Import Project=".\MSBuild.Community.Tasks.Targets"/>

    <PropertyGroup>
        <Configuration Condition="'$(Configuration)' == ''"> Debug</Configuration>    
    </PropertyGroup>

  <ItemGroup>
    <BuildArtifacts Include=".\build_artifacts\"/>
    <SolutionFile Include ="..\Core.Services.sln"/>
    <NUnitPath Include="..\Packages\NUnit.2.5.10.11092\tools"/>          
  </ItemGroup>

  <Target Name="Clean">
    <RemoveDir Directories="@(BuildArtifacts)"/>
  </Target>

    <Target Name="Init" DependsOnTargets="Clean">
    <MakeDir Directories="@(BuildArtifacts)"/>
  </Target>

    <Target Name="Compile"  DependsOnTargets="Init">    
    <MSBuild            
    Projects="@(SolutionFile)"            
    Targets="Rebuild"
    Properties="OutDir=%(BuildArtifacts.FullPath)">      
    </MSBuild>    
    </Target>

    <Target Name="DevelopmentBuild" DependsOnTargets="Compile">
         <Message Text="Running Unit Tests from %(BuildArtifacts.FullPath)...."      ContinueOnError="true"></Message>

    <CreateItem Include="%(BuildArtifacts.FullPath)*.Tests.dll">
    <Output TaskParameter="Include" ItemName="TestAssembly" />
    </CreateItem>
    <NUnit Assemblies="@(TestAssembly)"
        ToolPath="@(NUnitPath)\"
        ContinueOnError="false"           
        OutputXmlFile="%(BuildArtifacts.FullPath)test-results.xml"
        DisableShadowCopy="true"/>    
      </Target>  
    </Project>
...