1
resposta

Jest: Coverage data for globals was not found.

Olá. Estou escrevendo testes unitários usando JEST e estou enfrantando o seguinte problema: Jest: Coverage data for globals was not found.

Que estourou o seguinte:

pm ERR! code ELIFECYCLE
error	08-Nov-2023 09:46:48	npm ERR! errno 1
error	08-Nov-2023 09:46:48	npm ERR! my-app@0.0.0-x test: `jest`
error	08-Nov-2023 09:46:48	npm ERR! Exit status 1
error	08-Nov-2023 09:46:48	npm ERR! 
error	08-Nov-2023 09:46:48	npm ERR! Failed at themy-appt@0.0.0-x test script.
error	08-Nov-2023 09:46:48	npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Meu package.json:

"jest": {
        "preset": "jest-preset-angular",
        "setupFilesAfterEnv": [
            "<rootDir>/src/setup.jest.ts"
        ],
        "testPathIgnorePatterns": [
            "<rootDir>/node_modules/",
            "<rootDir>/dist/"
        ],
        "collectCoverage": true,
        "collectCoverageFrom": [
            "./src/**"
        ],
        "coveragePathIgnorePatterns": [
            "node_modules",
            "test-config",
            "interfaces",
            "jestGlobalMocks.ts",
            ".module.ts",
            "<rootDir>/src/app/main.ts",
            ".mock.ts",
            "src/environments",
            "src/index.html",
            "src/main.ts",
            "src/polyfills.ts"
        ],
        "coverageThreshold": {
            "global": {
                "lines": 70,
                "statements": 70
            },
            "globals": {
                "ts-jest": {
                    "tsConfig": "<rootDir>/tsconfig.sepc.json",
                    "stringifyContentPathRegex": "\\.html$"
                }
            }
        }
    }

Angular.json:

"test": {
          "builder": "@angular-builders/jest:run",
          "options": {
            "coverage": true,
            "codeCoverageExclude": [
              "e2e/**",
              "mock/**",
              "**/*config.js",
              "**/*conf.js",
              "**/environments/*.ts",
              "**/*.spec.ts",
              "**/main.ts",
              "**/polyfills.ts",
              " **/index.html",
              "**/*app.module.ts",
              "**/*.spec.ts, **/*.ts",
              "src/test/*"
            ],
            "no-cache": [
              "true"
            ],
            "tsConfig": "tsconfig.spec.json",
            "testMatch": [
              "**/__test__/**/*.[jt]s?(x)",
              "**/?(*.)+(spec|test).[jt]s?(x)"
            ],
            "polyfills": [
              "src/polyfills.ts"
            ],
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.css"
            ],
            "scripts": []
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": [
              "tsconfig.app.json",
              "tsconfig.spec.json",
              "e2e/tsconfig.json"
            ],
            "exclude": [
              "**/node_modules/**"
            ]
          }
        }

Não encontrei nada sobre o assunto. Poderiam me ajudar?

1 resposta

Olá! Parece que você está enfrentando um problema com o Jest ao executar seus testes unitários. O erro "Coverage data for globals was not found" indica que o Jest não encontrou dados de cobertura para as variáveis globais.

Uma possível solução para esse problema é verificar se você está configurando corretamente o caminho dos arquivos que devem ser cobertos pela análise de cobertura. No seu arquivo package.json, você definiu a propriedade "collectCoverageFrom": ["./src/**"], que indica que todos os arquivos dentro da pasta src devem ser cobertos. Certifique-se de que os arquivos que você deseja cobrir estão realmente dentro dessa pasta e que os padrões definidos em "coveragePathIgnorePatterns" não estão excluindo esses arquivos.

Além disso, verifique se você está executando os testes corretamente. No seu arquivo angular.json, você definiu a configuração para executar os testes usando o Jest. Certifique-se de que você está executando o comando ng test ou npm test para executar os testes com o Jest.

Se mesmo após essas verificações o problema persistir, pode ser necessário investigar mais a fundo a configuração do Jest e o ambiente em que você está executando os testes. Verifique se todas as dependências necessárias estão instaladas corretamente e se não há conflitos entre versões.

Espero ter ajudado, qualquer coisa manda aqui de novo. Bons estudos!