【问题标题】:Is there a way to display code coverage results metrix in ci-cd in github?有没有办法在 github 的 ci-cd 中显示代码覆盖率结果指标?
【发布时间】:2021-11-21 23:39:10
【问题描述】:

我在 Visual Studio 2019 企业版中使用代码覆盖工具。

我得到一个 .coverage 文件,但我想在 CI 中显示矩阵结果。

你知道有什么办法吗?

谢谢。

附言

有一个 GitHub 动作 danielpalme/ReportGenerator 但它会将结果显示到文件中。我需要同样的,但在 CI-CD 运行本身中显示结果。

【问题讨论】:

  • 你已经在使用 Github Actions 了吗?
  • 是的。我正在使用 GitHub 操作

标签: c# visual-studio-2019 code-coverage


【解决方案1】:

这对我有用:

 1. Using danielpalme/ReportGenerator action for generating csv file 
 2. Read the csv file to the ci-cd



  - name: Read Code Coverage
    id: covergae
    uses: juliangruber/read-file-action@v1
    with:
       path: Summary.csv
    
  - name: Echo Code Coverage
    run: echo "${{ steps.covergae.outputs.content }}"

【讨论】:

    【解决方案2】:

    您需要使用能够分析由dotnet testng test 或类似文件生成的代码覆盖率报告的代码分析服务。例如codecov.io

    • 转到codecov.io

      • 使用托管 git 存储库 (Github) 的帐户登录
      • 点击右上角头像→设置→访问
      • 生成令牌 → 名称 = GithubCI
      • 将您的令牌复制到临时记事本中
    • 转到托管在托管服务 (github.com) 上的 git 存储库

      • 设置选项卡 → 机密
      • 在此处添加您的 codecov.io 令牌,在存储库机密/组织机密下
    • 然后我有以下 github 工作流程(用于 Angular)来运行单元测试,从而生成代码覆盖率报告。然后工作流将覆盖率报告发布到 codecov.io

    name: npm-publish
    
    on:
      push:
        branches: [ master ]
    
    jobs:
      build:
      
        name: npm-publish
        runs-on: ubuntu-latest
        
        permissions: 
          contents: read
          packages: write 
        
        steps:
        - name: Checkout
          uses: actions/checkout@v2
        
        - name: Setup node
          uses: actions/setup-node@v2
          with:
            node-version: 14
    
        - name: Install dependencies
          run: npm install
        
        - name: Build
          run: npm run nx run-many -- --target=build --projects=ng-youtube-player-demo --configuration production --with-deps
    
        - name: Test
          run: npm run nx run-many -- --target=test --projects=ng-youtube-player-demo --with-deps  --watch=false --browsers=ChromeHeadless --coverage --coverageReporters=lcovonly
    
        - name: Upload code coverage report
          uses: codecov/codecov-action@v1
          with:
            token: ${{ secrets.CODECOV_TOKEN }}
            directory: ./coverage/libs/mintplayer-ng-youtube-api
          
        - name: Upload code coverage report
          uses: codecov/codecov-action@v1
          with:
            token: ${{ secrets.CODECOV_TOKEN }}
            directory: ./coverage/libs/mintplayer-ng-youtube-player
          
        - name: Push to NPM
          uses: JS-DevTools/npm-publish@v1
          with:
            package: 'dist/libs/mintplayer-ng-youtube-api/package.json'
            registry: 'https://registry.npmjs.org'
            token: ${{ secrets.PUBLISH_NODE_TO_NPMJS_COM }}
            access: 'public'
    
        - name: Push to NPM
          uses: JS-DevTools/npm-publish@v1
          with:
            package: 'dist/libs/mintplayer-ng-youtube-player/package.json'
            registry: 'https://registry.npmjs.org'
            token: ${{ secrets.PUBLISH_NODE_TO_NPMJS_COM }}
            access: 'public'
    
        - name: Push to Github
          uses: JS-DevTools/npm-publish@v1
          with:
            package: 'dist/libs/mintplayer-ng-youtube-api/package.json'
            registry: 'https://npm.pkg.github.com'
            token: ${{ github.token }}
            access: 'public'
    
        - name: Push to Github
          uses: JS-DevTools/npm-publish@v1
          with:
            package: 'dist/libs/mintplayer-ng-youtube-player/package.json'
            registry: 'https://npm.pkg.github.com'
            token: ${{ github.token }}
            access: 'public'
    

    npm test 生成我的代码覆盖率报告。接下来的步骤:

    - name: Upload code coverage report
      uses: codecov/codecov-action@v1
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        directory: ./coverage/libs/mycompany-ng-youtube-player
    

    将覆盖率报告上传到codecov.io。然后他们会分析你的报告,完成后,你可以在你的 readme.md 上放一个徽章

    [![codecov](https://codecov.io/gh/MyCompany/mycompany-ng-youtube-player/branch/master/graph/badge.svg?token=K0B355423X3)](https://codecov.io/gh/MyCompany/mycompany-ng-youtube-player)
    

    codecov.io 上找到此徽章降价 → 您的存储库 → 设置 → 徽章 → 复制降价

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2020-09-19
    • 1970-01-01
    相关资源
    最近更新 更多