Jest collectCoverageFrom и CoverageThreshold не работает

У меня есть простое приложение для создания реакции. Я создал файл jest.config.ts, потому что мой проект находится в машинописном тексте.

import type { Config } from "@jest/types";

// Sync object
const config: Config.InitialOptions = {
    collectCoverageFrom: ["./src/modules/*.tsx", "./src/hooks/*.tsx", "./src/components/*.tsx"],
    coverageThreshold: {
        global: {
            statements: 100,
            branches: 100,
            functions: 100,
            lines: 100,
        },
    },
};
export default config;

Но когда я запускаю npm t или npm run test --watch, моя конфигурация coverageThreshold и collectCoverageFrom не работает. Я понятия не имею, что случилось. Раньше мой файл конфигурации имел расширение js, но я изменил его тип, потому что думаю, что это причина, по которой он не работает.

Также стараюсь писать вместо этого collectCoverageFrom: ["./src/modules/*.tsx", "./src/hooks/*.tsx", "./src/components/*.tsx"],

этот collectCoverageFrom: ["**/src/modules/*.tsx", "**/src/hooks/*.tsx", "**/src/components/*.tsx"],

и этот

collectCoverageFrom: ["**/src/**/*.tsx"],

Но файл jest.config не работает.

пакет.json

{
    "name": "ui",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        "@emotion/react": "^11.5.0",
        "@testing-library/jest-dom": "^5.11.4",
        "@testing-library/react": "^11.1.0",
        "@types/node": "^12.0.0",
        "@types/react": "^17.0.34",
        "web-vitals": "^1.0.1"
        // other libs
    },
    "scripts": {
        "start": "react-scripts start",
        "proxy": "concurrently \"react-scripts start\" \"npm run mock\" ",
        "mock": "nodemon mock --watch mock",
        "build": "react-scripts build",
        "test": "react-scripts test --coverage",
        "eject": "react-scripts eject",
        "prettier": "prettier --ignore-path .gitignore --write \"**/*.+(js|json)\"",
        "lint": "eslint --ignore-path .gitignore --ext .js,.ts,.tsx .",
        "format": "npm run prettier -- --write",
        "check-format": "npm run prettier -- --list-different",
        "validate": "npm-run-all --parallel lint check-format build"
    },
    "devDependencies": {
        "@testing-library/react-hooks": "^7.0.2",
        "@types/jest": "^26.0.24",
        "ts-jest": "^27.1.4",
        // any other libs
    }
}

Также файл index.html в папке покрытия показывает такое покрытие

60.6% Statements20/33 40% Branches4/10 46.66% Functions7/15 58.62% Lines17/29

Это означает, что когда я запускаю npm t jest, он должен показывать мне ошибку о глобальном охвате не на 100%. Но я не вижу никакой ошибки в терминале.

🤔 А знаете ли вы, что...
React предоставляет жизненные циклы компонентов для управления состоянием и поведением.


1
389
1

Ответ:

Решено

Исправлено добавление конфигурации шутки в мой package.json

  "devDependencies": {
      "@testing-library/react-hooks": "^7.0.2",
      "@types/jest": "^26.0.24",
      "ts-jest": "^27.1.4",
      // any other libs
  },
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.tsx",
      "src/components/*.tsx",
      "!**/node_modules/**",
      "!**/src/test-utils/**",
      "!**/src/index.tsx"
    ],
    "coverageThreshold": {
        "global": {
            "statements": 100,
            "branches": 100,
            "functions": 100,
            "lines": 100
        }
    }
  }

Интересные вопросы для изучения

Почему мой код NextJS запускается несколько раз и как этого избежать?Как исправить «Возможно, вам понадобится соответствующий загрузчик для обработки этого типа файла, в настоящее время загрузчики не настроены для обработки этого файла»Jest терпит неудачу при рендеринге компонента React с «Нет элемента, проиндексированного»Тип «Dispatch<any>» не может быть назначен типу «() => null». ts(2322)Маршруты React Dom не работают должным образом, изменяют путь, но ничего на страницеКак исправить «Возможно, вам понадобится соответствующий загрузчик для обработки этого типа файла, в настоящее время загрузчики не настроены для обработки этого файла»Ошибка Webpack 5 - Uncaught ReferenceError: требование не определеноReact Native && Firebase && useContext - «TypeError: null не является объектом (оценка '_ref.user')» с ошибкой onAuthStateChangedТип «Dispatch<any>» не может быть назначен типу «() => null». ts(2322)Функция Typescript и Reducer с несколькими вариантами полезной нагрузки