Мы используем jest-runner-eslint
для запуска нашей конфигурации eslint, а затем также используем jest для наших обычных тестов. Согласно предложению в документации , у нас есть наши обычные тесты, и наши тесты lint настроены как два отдельных проекта в «поле проектов» нашей конфигурации.
К сожалению, я не вижу, как запускать тесты lint и «настоящие» тесты по отдельности. Запуск jest с ошибками --projects flag
, поскольку предполагается, что наш проект - monorepo, и мы пытаемся запустить тесты внутри папки monorepo.
Пример:
$ yarn test --projects lint
yarn run v1.6.0
$ node scripts/test.js --env=jsdom --projects lint
Error: Can't find a root directory while resolving a config file path.
Provided path to resolve: lint
Обратите внимание, что мы можем нормально запускать наши тесты вместе, но эти два набора не могут быть запущены отдельно.
Наш Jest-конфиг (свободно основанный на create-реагировать-приложение)
{
"projects": [
{
"displayName": "test",
"collectCoverage": true,
"coverageDirectory": "<rootDir>/coverage",
"collectCoverageFrom": [
"src/**/*.{js,jsx,mjs}"
],
"coverageReporters": [
"text-summary",
"lcov",
"json"
],
"setupTestFrameworkScriptFile": "<rootDir>/src/setupTests.js",
"setupFiles": [
"<rootDir>/config/polyfills.js",
"<rootDir>/src/setupTest.js"
],
"snapshotSerializers": [
"enzyme-to-json/serializer"
],
"testMatch": [
"<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",
"<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"
],
"testEnvironment": "node",
"testURL": "http://localhost",
"transform": {
"^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
],
"moduleNameMapper": {
"^react-native$": "react-native-web"
},
"moduleFileExtensions": [
"web.js",
"mjs",
"js",
"json",
"web.jsx",
"jsx",
"node"
]
},
{
"runner": "jest-runner-eslint",
"displayName": "lint",
"testMatch": [
"<rootDir>/src/**/*.js"
]
}
]
}
Различные версии:
- ОС: macOS Sierra 10.12 (хотя я также видел это в Ubuntu 16)
- Узел: v8.11.1
- Шутка: 22.4.3
- шутник-бегун-эслинт: 0,5,0