J'essaie de collecter une couverture de test pour ce projet en utilisant
yarn test --coverage # i.e. "react-scripts test --coverage"
Ma configuration de JEST est la suivante:
"jest": {
"collectCoverageFrom": [
"src/**/*.ts*"
],
"coverageThreshold": {
"global": {
"lines": 90,
"statements": 90
}
}
}
et ma structure de dossier est la suivante:
.
├── package.json
├── postcss.config.js
├── public/
├── README.md
├── src/
│ ├── App.css
│ ├── App.test.tsx
│ ├── App.tsx
│ ├── assets/
│ ├── components/
│ │ ├── Emoji/
│ │ │ ├── Emoji.test.tsx
│ │ │ ├── Emoji.tsx
│ │ │ └── index.ts
│ │ └── Home/
│ │ ├── Home.css
│ │ ├── Home.test.tsx
│ │ ├── Home.tsx
│ │ └── index.ts
│ ├── index.css
│ ├── index.tsx
│ ├── react-app-env.d.ts
│ └── serviceWorker.ts
├── tsconfig.json
├── yarn-error.log
└── yarn.lock
La Jest est en mesure de trouver tous les tests, mais elle ne collecte pas la couverture:
PASS src/components/Home/Home.test.tsx
PASS src/components/Emoji/Emoji.test.tsx
PASS src/App.test.tsx
----------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files | 0 | 0 | 0 | 0 | |
----------|----------|----------|----------|----------|-------------------|
Test Suites: 3 passed, 3 total
Tests: 3 passed, 3 total
Snapshots: 0 total
Time: 3.432s
Ran all test suites.
Qu'est-ce que je rate? Que dois-je ajouter à la configuration pour obtenir la couverture?
Toute astuce est la bienvenue :)
"src/**/*.{js,jsx,ts,tsx}"
.node_modules
, puis en cours d'exécution yarn
pour réinstaller tout.node_modules
et yarn.lock
, puis réinstaller tout, ce qui a conduit à n autre bug , que j'ai essayé de résoudre l'installation de cette dépendance particulière, mais cela n'a pas fonctionné.Ajoutez ceci à votre colis.json
"jest": {
"testPathIgnorePatterns": [
"<rootDir>/path/to/ignore/"
]
}
Cela résoudra la question de la vôtre au lieu de spécifier de nombreuses commandes
Dans mon cas, je testais React Native/Expo App avec l'option cacheDirectory: '.jest/cache'
. Supprimer le .jest
Le répertoire a résolu le problème pour moi.