web-dev-qa-db-fra.com

JEST PASSER TESTS MAIS - Option de recouverte N'entrant pas de fichiers

Description du problème :
[.____] J'ai écrit deux tests pour une classe dossière. Ces deux tests passent donc que la JEST récupère avec succès les fichiers de test. J'utilise ensuite l'option - Coverage, mais il apparaît que la JEST ne cueille pas les fichiers couverts ici.
[.____] Voici la sortie que je reçois:

api_jester    | PASS src/tests/repositories/user.test.ts
api_jester    |   User Repository
api_jester    |     ✓ it should return an empty array (18ms)
api_jester    |     ✓ should successfully create a user and return its data (7ms)
api_jester    | 
api_jester    | ----------|----------|----------|----------|----------|-------------------|
api_jester    | File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
api_jester    | ----------|----------|----------|----------|----------|-------------------|
api_jester    | All files |        0 |        0 |        0 |        0 |                   |
api_jester    | ----------|----------|----------|----------|----------|-------------------|
api_jester    | Test Suites: 1 passed, 1 total
api_jester    | Tests:       2 passed, 2 total
api_jester    | Snapshots:   0 total
api_jester    | Time:        3.208s
api_jester    | Ran all test suites.

J'ai essayé de jouer avec l'option CollectCoverageFrom, mais sans succès. J'ai testé ce qui suit des exemples simples trouvés sur GitHub et ceux qui travaillaient pour que le problème ne soit pas de mon environnement. Je suppose que je manquai d'une manière ou d'une autre quelque chose dans ma configuration, mais j'ai passé tellement de temps à ce que je commence à obtenir une sorte de frustration alors peut-être que des regards frais pourrait aider ..

architecture de projet :

config
|__ jest.config.js
|__ tsconfig.json
src
|__tests
|  |__repositories
|     |__user.test.ts
|__repositories
   |___ userRepository
        |__User.ts

jest.config.js :

module.exports = {
  preset: "ts-jest",
  testEnvironment: "node",
  roots: ["../src/tests/"],
  transform: {
    "^.+\\.tsx?$": "ts-jest"
  },
  collectCoverageFrom: ["../src/"],
  moduleFileExtensions: ["ts", "js", "json"],
  coverageDirectory: "../coverage"
};

paquet.json

{
  "name": "theralog_api",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "build": "tsc",
    "prettier": "npx prettier --write src/**/*.ts --config ./config/.prettierrc",
    "eslint": "npx eslint --config ./config/.eslintrc ./src/**/**/*",
    "start:dev": "npx nodemon -L --config ./config/api.nodemon.json",
    "test:watch": "npx nodemon -L --config ./config/jester.nodemon.json",
    "test:coverage": "npx jest --config ./config/jest.config.js --coverage --colors --watch"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/compression": "^1.0.1",
    "@types/express": "^4.17.1",
    "@types/graphql-depth-limit": "^1.1.2",
    "@types/jest": "^24.0.23",
    "@types/node": "^12.7.12",
    "@TypeScript-eslint/eslint-plugin": "^2.5.0",
    "@TypeScript-eslint/parser": "^2.5.0",
    "apollo-server-testing": "2.9.7",
    "babel-jest": "^24.9.0",
    "eslint": "^6.5.1",
    "eslint-config-prettier": "^6.4.0",
    "graphql-depth-limit": "^1.1.0",
    "graphql-import": "^0.7.1",
    "graphql-import-node": "0.0.4",
    "jest": "^24.9.0",
    "nodemon": "^1.19.3",
    "prettier": "^1.18.2",
    "ts-jest": "^24.1.0",
    "ts-node": "^8.4.1",
    "tsconfig-paths": "^3.9.0",
    "TypeScript": "^3.7.2"
  },
  "dependencies": {
    "apollo-server-express": "^2.9.6",
    "compression": "^1.7.4",
    "cors": "^2.8.5",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "graphql": "^14.5.8",
    "http": "0.0.0",
    "lodash": "^4.17.15",
    "ncp": "^2.0.0",
    "pg": "^7.12.1",
    "winston": "3.2.1"
  }
}

jester.nodemon.json

{
  "watch": ["../src"],
  "ext": "ts",
  "exec": "npx jest --config ./config/jest.config.js --watchAll"
}
8
Aria Groult

Après beaucoup de recherches à plusieurs pages, cela a travaillé pour que je reçois le rapport de la couverture:

mettre en dessous de la ligne sous scripts:

"test:coverage": "set CI=true && react-scripts test --coverage",

package.json picture

Et ajouter ci-dessous code pour la configuration de JEST dans le fichier package.json ci-dessous:

 "jest": {
    "collectCoverageFrom": [
      "**/*.{js,jsx}",
      "!**/node_modules/**",
      "!**/coverage/**",
      "!**/serviceWorker.js",
      "!**/index.js"
    ],
    "coveragePathIgnorePatterns": [
      "/node_modules/",
      "package.json",
      "package-lock.json"
    ]
  }

jest in package.json file

Et puis courir

npm run test:coverage
0
suresh