首页 > 解决方案 > yarn test(jest) 找不到使用 create-react-app 的测试

问题描述

我对 JavaScript 中的自动化测试相当陌生,并希望在我的工作中包含 Jest。

我在 create-react-app 中遵循了 Jest-Testing 的简单指南。

当我尝试使用yarn test运行测试时,它以监视模式启动,没有任何错误,然后给我:

No tests found, exiting with code 0

我的测试文件在 src/*.spec.ts 中。我试过 *.test.js,把它放在 src/__test__/(*.js | *.ts) 中。

我想不通,为什么它没有找到任何测试。

所以我创建了一个全新的 react 应用程序:

yarn create react-app test --typescript
cd .\test
yarn test

它给了我一个完全相同的错误(没有找到测试),一个简单的新 create-react-app。尝试使用和不使用打字稿。

我在全球范围内安装了 jest,并尝试在我的项目文件夹中仅使用jest作为命令进行测试。它找到了应有的测试,但是第一个 JSX 语句有语法错误:

      4 |
      5 | test('renders learn react link', () => {
    > 6 |   const { getByText } = render(<App />);
        |                                ^
      7 |   const linkElement = getByText(/learn react/i);
      8 |   expect(linkElement).toBeInTheDocument();
      9 | });


新的 create-react-app 中的package.json对我来说是这样的:

{
  "name": "test",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "@types/jest": "^24.0.0",
    "@types/node": "^12.0.0",
    "@types/react": "^16.9.0",
    "@types/react-dom": "^16.9.0",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.1",
    "typescript": "~3.7.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}



我现在在 Windows10 上。我发现许多描述我的问题的错误,但由于微模式,Jest 22/23 似乎存在这样的问题,而我在 Jest 25.2.1 和全新安装上。提供的解决方案都不适合我。
由于我对开玩笑完全陌生,因此我将不胜感激。

标签: javascriptreactjsunit-testingjestjs

解决方案


它表明你的测试中有语法错误,因为你的测试文件里面有 jsx 并且被命名为.ts,但它应该是.tsx


推荐阅读