2

我正在尝试使用 Team City 和 MSbuild 以及 MS build 社区扩展在新的客户端站点设置 CI 环境。编译代码似乎工作正常。但是,当我运行单元测试时,我收到来自 NUnit 任务的以下错误:

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

我已经确定了导致此问题的两个测试项目。但是,我直接从 nunit-console 和 resharper nunit 测试运行器运行了测试,虽然我看到了警告,但测试没有失败。我不想对任何项目中的 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>
4

0 回答 0