• .NET Core项目自动化测试和代码覆盖率审查


    这篇文章给大家分享一下,如何配置.NET Core项目自动化测试和代码覆盖率审查。

    基本知识,请参考这里: https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-dotnet-test

    环境准备:

    演示项目基于Visual Studio Code,并且安装如下插件

    1. Coverage Gutters
    2. Coverlet

    我有如下的项目结构

    本地开发环境运行测试并查看代码覆盖率

    运行 dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=lcov /p:CoverletOutput=./lcov.info

    点击状态栏中的Watch 按钮

    这样就能快速进入源代码中查看哪些代码覆盖,哪些代码没有覆盖。

    下图红色标出的代码是没有覆盖到的。

     

    配置CI 系统自动测试和计算覆盖率

    我这里用 的是Azure DevOps,希望每次pipeline运行时能了解测试成功率和代码覆盖率。

    你可以像下面这样定义Pipeline

     

    # ASP.NET

    # Build and test ASP.NET projects.

    # Add steps that publish symbols, save build artifacts, deploy, and more:

    # https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4

     

    trigger:

    - main

     

    pool:

    vmImage: 'windows-latest'

     

    variables:

    solution: '**/*.sln'

    buildPlatform: 'Any CPU'

    buildConfiguration: 'Release'

     

    steps:

    - task: NuGetToolInstaller@1

     

    - task: NuGetCommand@2

    inputs:

    restoreSolution: '$(solution)'

     

    - task: VSBuild@1

    inputs:

    solution: '$(solution)'

    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'

    platform: '$(buildPlatform)'

    configuration: '$(buildConfiguration)'

     

    - task: DotNetCoreCLI@2

    inputs:

    command: 'test'

    arguments: '--collect "XPlat Code Coverage"'

     

    - task: PublishCodeCoverageResults@1

    inputs:

    codeCoverageTool: 'Cobertura'

    summaryFileLocation: '$(Agent.TempDirectory)*coverage.cobertura.xml'

     

    成功运行后,会看到下面这样的详细测试报告

     

    还有代码覆盖率审查报告

     

    通过在Azure DevOps安装一个插件("Build Quality Checks"),可以根据代码覆盖率的数值进行代码质量审查。例如下图所示,就是我们规定必须代码覆盖率到达60%以上才能编译通过。

     

  • 相关阅读:
    AdvStringGrid使用小结
    svn提示out of date的解决方法
    delphi之socket通讯
    Delphi的Socket编程步骤
    C++ Socket编程步骤
    centos7安装docker
    centos7安装指南
    UltraISO制作U盘启动盘
    浅谈linux 文件的三个时间
    自动配置zabbix-agent
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/14397983.html
Copyright © 2020-2023  润新知