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),那么相同的覆盖率设置将应用于所有配置,包括覆盖率输出目录。
我有一个开玩笑的 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),那么相同的覆盖率设置将应用于所有配置,包括覆盖率输出目录。