Я использую шутку для запуска тестов в моем монорепо. Эти тесты имеют взаимозависимости с другими подпакетами monorepo.
Все отлично работает локально. Но конвейер gitlab-ci дает сбой, потому что он не может разрешить взаимозависимости ...
Простая структура проекта:
packages
-core
--src
---core.js
--package.json
-advanced
--src
---advanced.js
---advanced.test.js
--package.json
.gitlab-ci.yml
jest.config.js
package.json
Простая jest.config. js:
module.exports = {
projects: ['packages/*'],
rootDir: __dirname,
roots: ['<rootDir>/packages'],
testMatch: ['**/*.test.js'],
}
Простое ядро / пакет. json:
{
"name": "@myProject/core",
"version": "1.0.0"
}
Простое расширение / пакет. json:
{
"name": "@myProject/advanced",
"version": "1.0.0",
"dependencies": {
"@myProject/core": "^1.0.0"
}
}
Простое сообщение advanced.test. js:
import thisthat from 'randomBibX'
import others from 'randomBibY'
import core from '@myproject/core'
//doTests
Пакет упрощенный. json:
{
"scripts": {
"test": "jest"
}
"devDependencies": {
"randomBibX": "^1.0.0",
"randomBibY": "^1.0.0"
}
}
Пакет упрощенный .gitlab-ci.yml:
image: node:10
stages:
- setup
- test
setup:
stage: setup
script:
- yarn config set cache-folder /cache/.yarn
- yarn install --non-interactive --frozen-lockfile
artifacts:
expire_in: 1hour
paths:
- node_modules
- "packages/*/node_modules"
jest:
stage: test
dependencies:
- setup
script:
- "[ ! -d node_modules/ ] && yarn install --non-interactive --frozen-lockfile"
- yarn test
Ошибка:
FAIL packages/advanced/src/advanced.test.js
● Test suite failed to run
Cannot find module '@myProject/core' from 'advanced.test.js'