#jestjs
#jestjs
Вопрос:
У меня есть тесты Jest в моем проекте React, и у меня еще нет покрытия для всех файлов. Тем не менее, я получаю эти ошибки:
Failed to collect coverage from /home/user/Development/VideoManager/VideoManagerClient/src/components/AppContent/VideoListLayout/VideoListLayout.js
ERROR: Cannot read property 'coverageData' of null
STACK: TypeError: Cannot read property 'coverageData' of null
Для упомянутого здесь файла еще не созданы модульные тесты. Я хочу, чтобы это просто отслеживалось как отсутствие покрытия и, таким образом, снижало всю мою статистику покрытия, а не выдавало ошибку.
Кроме того, когда я запускаю отдельные тесты в своей IDE, мои журналы заполняются еще большим количеством этих ошибок, потому что другие тесты не выполняются.
Как я могу это исправить?
PS. Вот моя конфигурация Jest:
"jest": {
"collectCoverage": true,
"coverageReporters": [
"html"
],
"coverageThreshold": {
"global": {
"branches": 80,
"functions": 80,
"lines": 80,
"statements": 80
}
},
"collectCoverageFrom": [
"src/**/*.{js,jsx,ts,tsx}",
"!src/**/*.d.ts",
"!src/serviceWorker.js"
],
"resolver": "jest-pnp-resolver",
"setupFiles": [
"react-app-polyfill/jsdom"
],
"setupFilesAfterEnv": [
"<rootDir>/test/setupTests.js"
],
"testMatch": [
"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
"<rootDir>/src/**/?(*.)(spec|test).{js,jsx,ts,tsx}",
"<rootDir>/test/**/*.{js,jsx,ts,tsx}"
],
"testPathIgnorePatterns": [
"<rootDir>/test/setupTests.js",
"<rootDir>/test/mock/.*",
"<rootDir>/test/exclude/.*"
],
"testEnvironment": "jsdom",
"testURL": "http://localhost",
"transform": {
"^. \.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest",
"^. \.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\.(js|jsx|ts|tsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
"[/\\]node_modules[/\\]. \.(js|jsx|ts|tsx)$",
"^. \.module\.(css|sass|scss)$"
],
"moduleNameMapper": {
"^react-native$": "react-native-web",
"^. \.module\.(css|sass|scss)$": "identity-obj-proxy",
"\.(css|sass|scss)$": "identity-obj-proxy"
},
"moduleFileExtensions": [
"web.js",
"js",
"web.ts",
"ts",
"web.tsx",
"tsx",
"json",
"web.jsx",
"jsx",
"node"
]
}
Ответ №1:
У меня была точно такая же проблема при использовании jest version 24.1.0
and babel-jest version 23.6.0
.
Решил это, обновив babel-jest
версию до 24.0.0
.