Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有发现任何测试_Javascript_Node.js_Unit Testing_Jestjs - Fatal编程技术网

Javascript 没有发现任何测试

Javascript 没有发现任何测试,javascript,node.js,unit-testing,jestjs,Javascript,Node.js,Unit Testing,Jestjs,在macOS上运行docker mhart/alpine节点:8 节点(6.10.3-r0)(18/18) 纱线0.24.6 笑话20.0.4 但是,在运行代码时,我有一个_tests _/index.test.js文件 node\u modules/.bin/jest--watchAll我得到以下输出 未找到任何测试 在/usr/src/app中 已检查5个文件。 testMatch:/\uuu测试/*.js?(x),***/?(*)(规范测试).js?(x)-1匹配 testPathIgno

在macOS上运行docker mhart/alpine节点:8

节点(6.10.3-r0)(18/18) 纱线0.24.6 笑话20.0.4

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

node\u modules/.bin/jest--watchAll
我得到以下输出

未找到任何测试
在/usr/src/app中
已检查5个文件。
testMatch:/\uuu测试/*.js?(x),***/?(*)(规范测试).js?(x)-1匹配
testPathIgnorePatterns:/node_modules/,/src,src-0匹配项
模式:“”-0个匹配项


我已多次重新安装程序包编号,但都没有效果。

您的输出显示
testMatch
1个匹配项
,这可能是您的
\uuu测试/index.test.js
文件。您的
testPathIgnorePatterns
似乎导致该测试套件被忽略
在/usr/src/app
中未找到任何测试表明Jest正在
/usr/src/app
中查找测试,
testPathIgnorePatterns:/node\u modules/,/src,src
表示Jest忽略
/src
目录中的文件


如果
\uu tests\uu/index.test.js文件位于/src目录之外,请查看该文件的位置,或者停止
testPathIgnorePatterns
忽略/src目录。

如果要在tests文件夹中运行所有测试,只需执行以下操作
jest\uuu tests\uuuu--watch

我在尝试在项目的子模块中运行测试时出现此错误。通过在独立于主项目的单独文件夹树中单独测试子模块,修复了此问题。

您可以尝试在没有任何参数的情况下运行
jest
。需要注意的一点是,如果您有如下文件结构,测试文件名必须遵循约定
*.test.js
*.spec.js

myFolder
│   myFile1.js
│   myFile2.js
│   ...
│   
└───__tests__
        myFile1.spec.js
        myFile2.spec.js
        ...
"testMatch": [
      "<rootDir>/src/**/*.(test).{js,jsx,ts,tsx}",
      "<rootDir>/src/**/?(*.)(spec|test).{js,jsx,ts,tsx}"
    ],
然后,您需要在
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

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

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

"testMatch": [
      "<rootDir>/src/**/*.(test).{js,jsx,ts,tsx}",
      "<rootDir>/src/**/?(*.)(spec|test).{js,jsx,ts,tsx}"
    ],
“testMatch”:[
“/src/***.(test)。{js,jsx,ts,tsx}”,
“/src/**/?(*)(规范测试)。{js,jsx,ts,tsx}”
],

如果您使用的是Typescript,则在我将Typescript从3.3更新到3.8.3后,我开始得到相同的
未找到测试
错误。将jest和ts jest从版本23.*更新到版本25.*为我修复了它。

我修复它的方法是稍微更改docker compose命令。我更改了
命令:npm run cover&&bash有没有办法只使用
.js
扩展而不是
test.js
spec.js