开玩笑:测试套件无法运行错误:未提供任何消息

del*_*lta 5 typescript reactjs jestjs

我正在将现有测试转换为使用带有 ts-jest 的打字稿,我找到了所有文件,但所有测试都失败并显示错误

 FAIL  src/components/Buttons/__tests__/index.tsx
  ? Test suite failed to run

    Error: No message was provided
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么,我似乎也无法通过谷歌搜索找到任何有同样问题的人,这太可怕了......

带有开玩笑配置的 package.json

  "jest": {
    "globals": {
      "ts-jest": {
        "tsConfigFile": "<rootDir>/tsconfig.json",
        "babelConfig": {
          "presets": ["@babel/preset-env", "@babel/preset-react"]
        }
      }
    },
    "setupTestFrameworkScriptFile": "<rootDir>/src/setupTests.ts",
    "verbose": true,
    "transform": {
      "^.+\\.tsx?$": "ts-jest"
    },
    "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
    "moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
      "typeface-roboto|\\.(css|less)$": "<rootDir>/__mocks__/styleMock.js"
    },
    "moduleFileExtensions": [
      "ts", "tsx", "js", "jsx", "json", "node"
    ]
  },
Run Code Online (Sandbox Code Playgroud)

示例测试文件...

import React from 'react';

import { shallow } from 'enzyme';

import Account from '../account';

it('renders without crashing', () => {
  expect(shallow(<Account />)).toBe(1);
});
Run Code Online (Sandbox Code Playgroud)

小智 1

我发现在项目目录中添加tsconfig.json文件可以解决此问题。

我的 tsconfig.json 文件不需要任何特殊的东西,事实上它根本不需要任何东西!只需有一个空白的 tsconfig.json 文件就可以运行我的测试。