如何收集从剧作家到 Sonar 的代码覆盖率(Angular 项目)

Ser*_*lov 8 testing babeljs angular nrwl-nx playwright

寻求有关该主题的帮助。有一个使用 nrwl 构建的 Angular 项目,其中包括 Playwright e2e 测试。但是,我无法扩展现有的单元测试(基于 Jest 且开箱即用)以实现 SonarCloud 中 Playwright 的正确代码覆盖率。

我将非常感谢任何类型的帮助或参考,我怎样才能实现这样的配置

我尝试了解决方案: https: //playwright.dev/docs/api/class-coverage ,但是当源映射与角度和 v8 代码覆盖率存在一些差异时,因此对话失败也尝试过: https://github .com/anishkny/playwright-test-coverage 这是我的错我无法直接访问 babelrc 文件(因为 nrwl monorepo)

小智 1

由于您有两种测试模式:unit 和 e2e,因此第一步是标准化覆盖率数据的原始格式。

例如,用作v8两者的数据提供者:

1、单元测试:

为 Jest 安装此自定义报告器npm i jest-monocart-coverage

// jest.config.js
const config = {
    collectCoverage: true,
    coverageProvider: 'v8',
    coverageReporters: ['none'],
    reporters: [
        ['jest-monocart-coverage', {
            name: 'My Unit Coverage Report',
            reports: [
                ['v8'],
                ['console-summary'],
                ['lcovonly']
            ],
            outputDir: './coverage-reports/unit'
        }]
    ],
};
export default config;
Run Code Online (Sandbox Code Playgroud)

将会./coverage-reports/unit/lcov.info生成一个声纳。

2、端到端测试:

为剧作家安装此自定义报告程序并通过本教程npm i monocart-reporter 收集全球报道报告。注意,也请使用报告为声纳生成。lcovonlylcov.info

3、上传2lcov.info到Sonae Cloud。