您的测试套件必须至少包含一项测试

Anc*_*nek 11 reactjs jestjs enzyme

我今天在我的项目中更新了一些依赖项,但它进行得非常顺利。现在,当我要推动它时,我开始了我的测试。和繁荣。他们都抛出:

Your test suite must contain at least one test.

我的包裹:

"jest": "23.1.0",
"jest-enzyme": "^6.0.1",
"jest-webpack-alias": "^3.3.3",
"jsdom": "^11.2.0",
"jsdom-global": "^3.0.2",
"enzyme": "3.3.0",
"enzyme-adapter-react-16": "^1.1.0",
"enzyme-to-json": "3.3.4",
Run Code Online (Sandbox Code Playgroud)

这就是我的示例测试文件的样子:

/shared/components/App/MyRoute/__tests__/MyRoute.test.js

/* eslint-disable import/no-extraneous-dependencies */
import React from 'react';
import { shallow } from 'enzyme';
import { ContactsRoute } from '../Route';

describe('<ContactsRoute />', () => {
  test('renders', () => {
    const wrapper = shallow(<ContactsRoute t={key => key} />);
    expect(wrapper).toMatchSnapshot();
  });
});
Run Code Online (Sandbox Code Playgroud)

我不知道他们为什么突然停止跑步?

编辑 - 添加我的笑话配置

  "jest": {
"collectCoverageFrom": [
  "shared/**/*.{js,jsx}"
],
"globals": {
  "JWT_SECRET": "local",
  "IS_TEST": "true"
},
"snapshotSerializers": [
  "<rootDir>/node_modules/enzyme-to-json/serializer"
],
"testPathIgnorePatterns": [
  "<rootDir>/(build|internal|node_modules|flow-typed|public|shared/services)/"
],
"moduleNameMapper": {
  "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/_test_config_/mocks/fileMock.js"
},
"testURL": "http://localhost:3005",
"transform": {
  ".": "<rootDir>/_test_config_/preprocessors/webpackAlias.js",
  "^.+\\.css$": "<rootDir>/_test_config_/preprocessors/cssTransform.js",
  "^(?!.*\\.(js|jsx|css|json)$)": "<rootDir>/_test_config_/preprocessors/fileTransform.js"
},
"setupFiles": [
  "<rootDir>/_test_config_/preprocessors/polyfills.js"
],
"setupTestFrameworkScriptFile": "./node_modules/jest-enzyme/lib/index.js"
},
Run Code Online (Sandbox Code Playgroud)

Obo*_*hin 22

确保未导入 describe / it/expect 变量

就我而言,IDE( VSCode )会自动describe从另一个库中导入变量。

  • 如果发生这种情况,下一步是 /sf/ask/4051188011/ 让 VSCode 理解笑话全局变量。 (2认同)

Nik*_*yan 20

如果所有其他响应都失败,并且您有任何名为 的文件test.js,Jest 将期望该文件包含测试。

我正在使用名为 test.js 的文件来手动测试一些内容,而 Jest 抛出了此错误。我将该文件重命名为其他名称(例如:123.js),然后我就不再收到此错误消息。

  • 我很高兴它有帮助。不知道为什么 Jest 会这样做,而且日志也没有任何帮助。 (3认同)
  • 除了重命名文件之外,另一个选择是将“testMatch”配置得更具体。我将其设置为“**/?*.test.ts” (2认同)

小智 13

确保你至少有一个 describe / it / expect

就我而言,我只写了一个describe / expect测试并收到此错误消息

  • jest/test/expect 也给出了这个错误。用“it”替换“test”修复了它。谢谢 (2认同)

Jaf*_*ini 8

可能你忘记了 it() 块:

也许你有一个错误,在某个地方代码是这样的:

describe('some text', () => {
    expect(...)...;
});
Run Code Online (Sandbox Code Playgroud)

将其替换为:

describe('some text', () => {
    it('my test', () => {
        expect(...)...;
    })
});
Run Code Online (Sandbox Code Playgroud)


Anc*_*nek 0

所以,我找到了答案。

这里Note的表示,如果我们与自己的预处理器一起使用,则必须在选项中显式定义babel-jestbabel-jesttransform

添加"^.+\\.jsx?$": "babel-jest"为配置中的第一个选项很重要transform