如何在TeamCity中运行OpenCover + NUnit而不运行所有单元测试两次?

Nig*_*888 5 msbuild teamcity continuous-integration nunit opencover

我在我的MSBuild脚本中设置OpenCover,设置ReportGenerator,并将其作为工件输出并具有自定义选项卡 - 所有这些都很有用.这是我的MSBuild目标:

<Target Name="Test">

        <!-- Check Code Coverage -->
        <Exec Command="..\..\tools\OpenCover.4.0.519\OpenCover.Console.exe -register:user -target:..\..\tools\NUnit\nunit-console.exe -targetargs:&quot;$(TestAssemblies) /xml=NUnitReport.xml /noshadow&quot; -filter:&quot;+[HelloWorld.Mvc3UI*]* -[HelloWorld.Mvc3UI.UnitTests*]*&quot; -output:OpenCoverReport.xml"></Exec>

        <!-- Format Code Coverage Report -->
        <Exec Command="..\..\tools\ReportGenerator.1.5.0.0\ReportGenerator.exe OpenCoverReport.xml OpenCoverReport"></Exec>

</Target>
Run Code Online (Sandbox Code Playgroud)

但是,为了运行OpenCover,它会附加到NUnit运行器以生成报告,该报告依次运行所有单元测试.虽然这可以为单元测试生成xml输出,但我还没有找到一个xsl文件来生成与TeamCity 7.1中内置的报告一样好的报告,更不用说过滤和搜索功能了.

但是如果我使用内置的NUnit运行程序在TeamCity中启用报告(通常是在TeamCity中获取单元测试报告的唯一方法),它会重新运行单元测试以生成其报告.

虽然这一切都有效,但我的问题是,是否有办法获得两份报告而无需两次运行所有单元测试?具体来说,OpenCover可以生成其报告而无需运行NUnit测试,或者TeamCity可以在不运行单元测试的情况下生成报告吗?

请注意,这是一个ASP.NET MVC3应用程序,OpenCover文档没有指定如何附加ASP.NET或者是否可以附加ASP.NET,但很明显它需要附加可执行文件.另请注意,我正在使用NUnit 2.6.1以防万一.

Pav*_*shy 7

您可以使用"构建功能"导入NUnit xml报告,如下面的屏幕截图所示: 在此输入图像描述