开玩笑没有测试

时间:2017-06-24 23:11:08

标签: javascript node.js unit-testing jestjs

运行docker mhart / alpine-node:使用

在macOS上运行8
  

nodejs(6.10.3-r0)(18/18)   纱线0.24.6   开玩笑20.0.4

我有一个__tests __ / index.test.js文件但是,在运行代码时

node_modules/.bin/jest --watchAll我得到以下输出

  

未发现任何测试   在/ usr / src / app中   检查了5个文件   testMatch: / __ tests __ / / * .js?(x),** /?(*。)(spec | test).js?(x) - 1匹配
  testPathIgnorePatterns:/ node_modules /,/ src, src - 0匹配
  模式:“” - 0匹配

我已经重新安装了包裹号码,但无济于事。

7 个答案:

答案 0 :(得分:9)

Your output says that testMatch had 1 match, which may be your __tests__/index.test.js file. It seems that your testPathIgnorePatterns is causing that test suite to be ignored. No tests found In /usr/src/app says that Jest is looking for tests in /usr/src/app, and testPathIgnorePatterns: /node_modules/,/src,src says that Jest is ignoring files in /src directories.

Either point Jest to look at the location of your __tests__/index.test.js file if it is outside the /src directory, or stop testPathIgnorePatterns from ignoring the /src directory.

答案 1 :(得分:3)

如果要在测试文件夹中运行所有测试,只需执行以下操作即可 Option Explicit

答案 2 :(得分:2)

如果您具有以下文件结构

myFolder
│   myFile1.js
│   myFile2.js
│   ...
│   
└───__tests__
        myFile1.spec.js
        myFile2.spec.js
        ...

然后,您需要在jest.config.js中使用testMatch属性的以下模式:

testMatch: ['**/__tests__/*.js?(x)'],

jest.config.js的简单示例:

const jestConfig = {
  verbose: true,
  testURL: "http://localhost/",
  'transform': {
    '^.+\\.jsx?$': 'babel-jest',
  },
  testMatch: ['**/__tests__/*.js?(x)'],
}

module.exports = jestConfig

答案 3 :(得分:1)

在尝试在项目的子模块中运行测试时遇到此错误。通过在与主项目不同的文件夹树中隔离地测试子模块,解决了该问题。

答案 4 :(得分:1)

您可以尝试不带任何参数运行jest。要注意的关键是测试文件名必须遵循约定*.test.js

答案 5 :(得分:1)

在package.json中,有一个用于查找测试文件的模式。在这种模式下,您可以根据文件位置对其进行更改,也可以将其设置为全局模式。

我写了一个测试,而不是在特定的文件夹中,并遵循命名约定*.test.js并更改了testMatch

"testMatch": [
      "<rootDir>/src/**/*.(test).{js,jsx,ts,tsx}",
      "<rootDir>/src/**/?(*.)(spec|test).{js,jsx,ts,tsx}"
    ],

答案 6 :(得分:1)

如果您使用的是Typescript,则在将Typescript从3.3更新到3.8.3之后,我开始遇到相同的HttpResponseMessage response = await client.PostAsJsonAsync(uri, parameter); if (response.IsSuccessStatusCode) { bool result = await response.Content.ReadAsAsync<bool>(); // result is false! return result; } 错误。将jest和ts-jest从23. *版本更新到25. *已为我修复。