monorepo 中项目的开玩笑 coverageDirectory 配置

jest coverageDirectory configuration for project inside monorepo

我有一个开玩笑的 typescript monorepo。他们的jest.config.js

module.exports = {
  clearMocks: true,
  projects: ['<rootDir>/packages/**/jest.config.js'],
  collectCoverage: true,
  coverageReporters: [
    "text-summary",
    "lcov",
  ],
  preset: 'ts-jest',
  testEnvironment: 'node',
  testMatch: ['*.spec.ts', '*.spec.tsx']
}

server 包中,我用

创建了 jest.config.js
const { name } = require('./package.json');

module.exports = {
  displayName: name,
  name,
  'transform': {
    '^.+\.ts$': 'ts-jest'
  },
  collectCoverageFrom: [
    '<rootDir>/src/**/*.ts'
  ],
  coverageDirectory: '<rootDir>/packages/server/src/tests/coverage',
}

但是当我 运行 开玩笑时,它会在我的 monorepo 的根目录下创建 coverage 目录。

我只是尝试使用 coverageDirectory: '<rootDir>/src/tests/coverage',coverageDirectory: 'src/tests/coverage',coverageDirectory: [__dirname, 'src', 'tests', 'coverage'].join('/'),,但没有成功。

我可以更改覆盖目录路径的唯一方法是在 monorepo 的 jest.config.js 中指定它,但是这样我就无法为每个项目指定一个覆盖目录。

有人知道如何在 monorepo 中为每个项目指定不同的覆盖目录吗?

如果您 运行 对每个产品单独开玩笑,则只能为每个项目指定不同的覆盖目录。如果您使用的是全局配置(monorepo 根目录下的 jest.config.js),那么相同的覆盖率设置将应用于所有配置,包括覆盖率输出目录。