#jestjs #monorepo
#jestjs #monorepo
Вопрос:
У меня есть typescript monorepo с jest. Их 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',
}
Но когда я запускаю jest, он создает coverage
каталог в корне моего monorepo.
Я просто пытаюсь использовать coverageDirectory: '<rootDir>/src/tests/coverage',
, coverageDirectory: 'src/tests/coverage',
и coverageDirectory: [__dirname, 'src', 'tests', 'coverage'].join('/'),
безуспешно.
Единственный способ, которым я мог изменить путь к каталогу покрытия, — это указать его в jest.config.js
monorepo, но при этом я не могу указать каталог покрытия для каждого проекта.
Кто-нибудь знает, как я могу указать другой каталог покрытия для каждого проекта в monorepo?
Ответ №1:
Вы можете указать другой каталог покрытия для каждого проекта, только если вы используете jest для каждого продукта в отдельности. Если вы используете глобальную конфигурацию ( jest.config.js в корне вашего monorepo), затем ко всем ним применяются одни и те же настройки покрытия, включая выходной каталог покрытия.
Комментарии:
1. как насчет другой настройки проекта (т.Е. Использования реквизита «projects») в jest.config.ts globla? кажется, что он переопределяется в любом случае, в документе не упоминается, что вы заявляете (хотя ваше утверждение верно)
2. это все еще верно в 2022 году?