Моя файловая структура выглядит примерно так:
Product/
|- httpdocs/
|- jest.config.js
|- modules/
|- modules1/
|- jest.config.js
|- modules2/
|- jest.config.js
|- modules3/
|- jest.config.js
В каждом jest.config.js
под модулями у меня есть некоторая конфигурация для этого конкретного модуля, например: setupFiles: ['<rootDir>/testHelpers/setup.js']
.
В моем топе jest.config.js
(под httpdocs
) я определил свои разные проекты:
projects: [
'<rootDir>/modules/module1',
'<rootDir>/modules/module2',
'<rootDir>/modules/module3'
]
Когда я запускаю jest
в httpdocs
, тесты не пройдены, потому что установочные файлы (и другая конфигурация) игнорируются внутри моих файлов module/jest.config.js
.
Когда я запускаю jest
в module1
, все тесты завершаются успешно
Я что-то не так делаю или опция projects
так не работает?
-------- РЕДАКТИРОВАТЬ 1 --------
Поэтому я перестроил свои конфиги, как предложил @cimenx.
Product/
|- jest.config.js
|- httpdocs/
|- modules/
|- modules1/
|- foo/
|- bar/
|- foobar.js
|- foobar.test.js
|- modules2/
|- ...
мой файл jest.config.js выглядит так:
module.exports = {
rootDir: './httpdocs/modules',
testPathIgnorePatterns: ['/node_modules/', '/smsc/'],
projects: [
{
displayName: 'module1',
testMatch: ['<rootDir>/module1/*.test.js']
},
{
displayName: 'module2',
testMatch: ['<rootDir>/module2/*.test.js']
}
]
};
На данный момент проблема в том, что Jest не может найти никаких тестов внутри моих модулей.
-------- РЕШЕНИЕ --------
Пока я писал свою РЕДАКТИРОВАТЬ 1 , я попробовал некоторые другие конфигурации ...
Очевидно, мой <rootDir>
всегда является каталогом, в котором находится мой файл jest.config.js
.
Решением для меня было написать весь путь от файла конфигурации до модулей без опции rootDir: './some/path'
module.exports = {
projects: [
{
displayName: 'module1',
testMatch: ['<rootDir>/httpdocs/modules/module1/**/*.test.js']
},
{
displayName: 'module2',
testMatch: ['<rootDir>/httpdocs/modules/module2/**/*.test.js']
}
]
};
Спасибо за помощь!