当前位置: 首页 > 知识库问答 >
问题:

如何为 Azure 开发运营生成 asp.net 单元测试生成代码覆盖率报告

夏侯昆琦
2023-03-14

我需要在azure build pipeline中生成Asp.net单元测试的代码覆盖率报告的指导。我的项目是基于。Net框架4.6。

我能够使用“visual studio test”任务运行所有单元测试。

我尝试了"报告生成器"任务,但它需要cobertura或Jacoco etc xml文件,这些文件无法在构建管道中生成。

期望 -我想获得已运行单元测试的代码覆盖率报告,该报告将显示完整的信息,如线路覆盖率,分支覆盖率,函数覆盖率等,与“报告生成器”生成的信息相同。

注意:我可以在本地系统上使用opencover和reportgenerator生成报告,但无法在azure构建管道中找到相同的方法。

共有2个答案

龚奇逸
2023-03-14

对于任何在 Azure DevOps 中寻找代码覆盖率(使用经典编辑器,不带 Yaml)的任何人,在当前的 .NET(核心)5 中,使用 xUnit 测试:

>

  • 在您的xUnit测试项目中,添加以下内容(它通常默认出现在.NET 5,xUnit模板中):

    <代码>\

    继续检查新版本。

  • 充子航
    2023-03-14

    要在.Net framework中获得代码覆盖率结果,只需在“Visual Studio测试”任务中启用它:

    如果使用。yml构建的语法是:

    - task: VSTest@2
      inputs:
        codeCoverageEnabled: true
    

    结果:

    注意:如果您使用Microsoft Hosted Agent,您将看到结果,如果您使用Self Hosted Agent,您必须使用Visual Studio Enterprise版本才能看到Code Coverage结果。

    如果您想要更详细的代码覆盖率报告,您可以在. Net框架中使用coverlet方法是在管道期间安装工具,然后生成报告。您可以使用PowerShell脚本执行以下操作:

    dotnet tool install dotnet-reportgenerator --tool-path . --version 4.0.12
    dotnet tool install coverlet.console --tool-path . --version 1.4.1
    mkdir .\reports
    $unitTestFile = gci -Recurse | ?{ $_.FullName -like "*bin\*test*.dll" }
    $coverlet = "$pwd\coverlet.exe"
    & $coverlet $unitTestFile.FullName --target "dotnet" --targetargs "vstest $($unitTestFile.FullName) --logger:trx" --format "cobertura"
    gci -Recurse |
    ?{ $_.Name -eq "coverage.cobertura.xml"} |
    %{ &"$pwd\reportgenerator.exe" "-reports:$($_.FullName)" "-targetdir:reports" "-reportstypes:HTMLInline;HTMLChart" }
    

    然后使用以下参数添加“发布代码覆盖率”任务:

    结果:

     类似资料:
    • 我已经看了一段时间关于stackoverflow的不同文章和答案,但我还没有找到适合我的情况的有效解决方案。我对jacoco、maven和sonar如何一起创建报告的理解肯定有问题,所以我要寻求帮助。 我有一个多模块maven项目,其结构如下(稍微简化了一下): 请允许我扩展一下。父模块只是一个带有整个依赖项及其版本的pom。这个pom被用作level1的每一个其他模块的父模块(直接位于根下面)。

    • 我正在为一个项目编写集成测试,在这个项目中,我正在进行HTTP调用,并测试它们是否成功。 因为我没有导入任何模块,也没有直接调用函数coverage.py报告为0%。 我想知道如何为此类集成HTTP请求测试生成覆盖率报告?

    • 有人知道是否有可能(以及如何)在Postman集成测试执行中生成代码覆盖率吗? 我们有基于Postman的集成测试,并通过Windows shell命令在Jenkins上执行。令人沮丧的是,我们不知道如何生成代码覆盖报告并将其发布到SonarQube中。 提前万分感谢!

    • 本文向大家介绍使用PHPUnit进行单元测试并生成代码覆盖率报告的方法,包括了使用PHPUnit进行单元测试并生成代码覆盖率报告的方法的使用技巧和注意事项,需要的朋友参考一下 安装PHPUnit 使用 Composer 安装 PHPUnit 使用Composer构建你的项目 我们将新建一个unit项目用于演示单元测试的基本工作流 创建项目结构 使用Composer构建工程 到此我们就完成项目框架的

    • 新的一年 之前因为上家公司的经营出了问题,年前的大裁员,过了一个漫长的春节。 之后加入了新公司,然后正好赶上一个很紧急的项目,忙成狗,因此好久没更新文章了。 不过,我又回来啦! 前言 自动化测试,我们将使用karma和nightmare,内容会包括: 单元测试 e2e测试(放下一篇文章) 其实,单元测试一般用在写公共包的时候,比如通用的js函数库,通用的UI组件库。基本不太会在做业务项目的时候还使