我有一个用于.NET Core 2.2 Web应用程序的构建管道,该应用程序具有一个用于运行测试的.NET Core任务。但是,在运行管道并检查“代码覆盖率”选项卡之后,我得到了以下消息。
我遗忘了要做或设置的遗漏吗?
答案 0 :(得分:0)
您需要进行以下设置:
--configuration $(BuildConfiguration) --collect:"XPlat Code Coverage"
您需要安装coverlet.collector
nuget软件包。
然后安装报告生成器:install --tool-path . dotnet-reportgenerator-globaltool
运行报告生成器:./reportgenerator -reports:$(Agent.TempDirectory)/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/coverlet/reports -reporttypes:"Cobertura"
并发布代码覆盖以获取此信息:
答案 1 :(得分:0)
您可以尝试按照以下步骤发布代码覆盖率。
1,首先,您需要确保您对nuget包coverlet.msbuild的项目引用。
SearchUserViewPresenter
2,通过运行自定义dotnet命令public weak var view: UserView!
下载报告生成器,请参见以下yaml格式的示例。
<PackageReference Include="coverlet.msbuild" Version="2.5.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
3,然后在您的dotnet测试任务中通过添加以下参数来启用CollectCoverage:
install --tool-path . dotnet-reportgenerator-globaltool
4,然后将任务Report Generator安装到您的组织中,并在reportgenerator任务中,将“ reports”文件夹指定到CoverletOutput文件夹中的报告- task: DotNetCoreCLI@2
inputs:
command: custom
custom: tool
arguments: install --tool-path . dotnet-reportgenerator-globaltool
displayName: Install ReportGenerator tool
,如上述dotnet测试任务arguments: '/p:CollectCoverage=true /p:CoverletOutput=$(Build.SourcesDirectory)\TestResult\ /p:CoverletOutputFormat=cobertura'
中所述。 / p>
请参阅以下完整示例,以yaml格式显示:
$(Build.SourcesDirectory)\TestResult\**\coverage.cobertura.xml