Jest.js 未找到测试

tez616oj  于 2023-09-28  发布在  Jest
关注(0)|答案(9)|浏览(186)

在macOS上运行docker mhart/alpine-node:8
nodejs(6.10.3-r0)(18/18)yarn 0.24.6 jest 20.0.4
我有一个__tests__/index.test.js文件,但是,当运行代码时,
node_modules/.bin/jest --watchAll我得到以下输出
未找到测试
在/usr/src/app
检查了5个文件。
testMatch:/tests//.js?(x),**/?(.)(质量标准|test).js?(x)- 1 match
testPathIgnorePatterns:/node_modules/,/src,src- 0匹配项
模式:“”- 0匹配
我已经重新安装了软件包号码倍,但无济于事。

but5z9lq

but5z9lq1#

如果你使用的是Typescript,在我将Typescript从3.3更新到3.8.3后,我开始得到同样的No tests found错误。更新jest和ts-jest从版本23.* 到25.* 为我修复了它。

qyswt5oh

qyswt5oh2#

对我来说,我使用的是vscode插件,我的修复方法是在.vscode/settings.json中添加此设置

"jest.jestCommandLine": "node_modules\\.bin\\jest"
a64a0gku

a64a0gku3#

您的输出显示testMatch1 match,这可能是您的__tests__/index.test.js文件。看起来您的testPathIgnorePatterns导致了该测试套件被忽略。No tests found In /usr/src/app表示Jest正在/usr/src/app中查找测试,testPathIgnorePatterns: /node_modules/,/src,src表示Jest正在忽略/src目录中的文件。
如果__tests__/index.test.js文件在/src目录之外,则指向Jest查看该文件的位置,或者阻止testPathIgnorePatterns忽略/src目录。

vmjh9lq9

vmjh9lq94#

如果您有如下文件结构

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
wlwcrazw

wlwcrazw5#

在package.json中,有一个用于查找测试文件的模式。在此模式中,您可以根据文件位置对其进行更改,也可以使其成为全局模式。
我写了一个测试,没有在特定的文件夹中,按照命名约定*.test.js和更改testMatch

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

unguejic6#

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

tktrz96b

tktrz96b7#

如果您想运行tests文件夹中的所有测试,只需执行以下操作jest __tests__ --watch

zaqlnxep

zaqlnxep8#

__tests__过滤器移到src中为我解决了这个问题。现在它能够运行测试。

68bkxrlz

68bkxrlz9#

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

相关问题