我已经设置了一个包含多个目标的MSBuild文件。
在我打电话的目标之一
<Exec Command="$(teamcity_dotnet_nunitlauncher) v4.0 X86 NUnit-2.5.9 @(UnitTestDlls)"/>
其中 @(UnitTestDlls)是包含我想要进行单元测试的DLL的一组项目。我是这样做的,因为从web界面我无法动态构建DLL列表进行单元测试。
无论如何,这工作正常,但现在我想用DotCover添加覆盖率分析。
过去我们使用PartCover如下:
<Exec Command="$(teamcity_dotnet_nunitlauncher) v4.0 X86 NUnit-2.5.9 @(UnitTestDlls)
/partcover:%22$(PartCoverConsole)%22 /partcover-arguments:%22--register
--output $(PartCoverXmlOutputFile) --include [*]* --exclude [Accessibility]*
--exclude [*]Microsoft* --exclude [*test*]* --exclude [*Test*]* --exclude [*JetBrains*]*
--exclude [*nunit*]* --exclude [*log4net*]*
@(ExternalLibraries->'--exclude [%(Filename)]* ','')%22"/>
它运作良好。
我尝试将/ partcover参数更改为/ dotcover,但似乎启动器不支持dotcover的参数!
答案 0 :(得分:1)
您应将dotCover.exe指定为可执行文件,并将NUnitLauncher作为目标可执行参数传递给dotCover。
<Exec Command="[path_to_dotCover]\dotCover.exe cover /TargetExecutable="$(teamcity_dotnet_nunitlauncher)" /TargetArguments="v4.0 X64 NUnit-2.5.9 @(UnitTestDlls)" /Output="[path_to_workdir]\[snapshot_name].dcvr"" WorkingDirectory="[path_to_workdir]"/>