天天看点

azure devops中文显示乱码_【Azure DevOps系列】Azure DevOps生成代码覆盖率

前言

在做单元测试时,代码覆盖率可以作为我们衡量代码质量的一个指标,本章我们将使用Azure DevOps帮助我们生成代码覆盖率的结果.Azure DevOps构建管道还是具有代码覆盖率选项的,在Visual Studio测试平台在已经集成了Coverlet格式的数据收集器,它其实并不难,它是可以开箱即用的。获取Coverlet格式报告几乎都是可以拿命令行参数去解决的。

在单元测试项目中需要引入nuget包coverlet.collector,当然只需要在单元测试项目中引用他,下面这个代码片段是单元测试模板自动生成的,我只是引入了一个我自己的类库。

netcoreapp3.1falseruntime; build; native; contentfiles; analyzers; buildtransitiveallruntime; build; native; contentfiles; analyzers; buildtransitiveall

如何在Azure DevOps中使用?

第一步是在构建之前对项目进行还原nuget包,这会将所有的包拉到构建代理的本地文件夹中.

还原项目包(dotnet restore)

- task: DotNet[email protected] displayName: 'dotnet restore' inputs: command: restore

构建项目(dotnet build)

- task: Do[email protected] displayName: 'dotnet build' inputs: command: build

运行单元测试,其实上面的管道任务都是非常简单的,但是对于单元测试,我们需要设置dotnet cli将测试结果进行收集,搜集为cobertura格式,这是通过命令行参数来完成的。

正如下所示:

运行单元测试

- task: [email protected] displayName: 'dotnet test' inputs: command: test projects: '**/XUnitTestProject1.csproj' arguments: '--configuration $(BuildConfiguration) --collect "XPlat Code coverage" -- RunC.........