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:"$(TestAssemblies) /xml=NUnitReport.xml /noshadow" -filter:"+[HelloWorld.Mvc3UI*]* -[HelloWorld.Mvc3UI.UnitTests*]*" -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以防万一.