Codecov、Github 操作和 Angular 11“未找到覆盖率报告”

Mur*_*sli 4 code-coverage codecov angular github-actions

我正在尝试通过 Github 操作将 Angular (v11) 库的代码覆盖率发布到 Codecov.io

我已经从市场设置了官方 Codecov github 操作

name: tests

on:
  pull_request:
    branches: [ master ]

jobs:
  build:
    # Machine environment:
    # We specify the Node.js version manually below, and use versioned Chrome from Puppeteer.
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js 14
        uses: actions/setup-node@v1
        with:
          node-version: 14
      - name: Install dependencies
        run: npm install
      - name: Build
        run: npm run build-lib
      - name: Test
        run: npm run test-lib-headless

      - name: Codecov
        uses: codecov/codecov-action@v1.1.1
Run Code Online (Sandbox Code Playgroud)

package.json 中的任务

"test-lib-headless": "ng test ngx-scrollbar --watch=false --no-progress --browsers=ChromeHeadless --code-coverage",
Run Code Online (Sandbox Code Playgroud)

karma.conf.js

name: tests

on:
  pull_request:
    branches: [ master ]

jobs:
  build:
    # Machine environment:
    # We specify the Node.js version manually below, and use versioned Chrome from Puppeteer.
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js 14
        uses: actions/setup-node@v1
        with:
          node-version: 14
      - name: Install dependencies
        run: npm install
      - name: Build
        run: npm run build-lib
      - name: Test
        run: npm run test-lib-headless

      - name: Codecov
        uses: codecov/codecov-action@v1.1.1
Run Code Online (Sandbox Code Playgroud)

覆盖率文件在coverage目录中创建

在此输入图像描述

在Github actions CI中,显示codecov没有找到文件!

在此输入图像描述

为什么本地生成的文件却找不到?Codecov 是否寻找不同的报告扩展名?我怎样才能让它发挥作用?

bla*_*iii 8

这是因为 codecov 不支持默认生成的覆盖率报告。

简单的解决方案是将lcov报告者添加到您的配置中。

https://istanbul.js.org/docs/advanced/alternative-reporters/#lcovonly

coverageReporter: {
      dir: require('path').join(__dirname, './coverage/peach-tree'),
      subdir: '.',
      reporters: [
        { type: 'html' },
        { type: 'text-summary' },
        { type: 'lcovonly' },
      ]
    },
Run Code Online (Sandbox Code Playgroud)

然后,codecov 提供的 bash 脚本将毫无问题地上传您的报告。