在 Jest 中禁用“您的测试套件必须至少包含一个测试”规则

Oli*_*ins 7 jestjs

Jest 有一个“您的测试套件必须至少包含一个测试”。规则。它抱怨说,如果我有一个不是测试套件的文件,它就不能存在于__test__/我创建的目录中(见下文)。这基本上意味着该文件夹(包括子文件夹)中的所有内容都必须是测试套件。

我该如何解决这个问题?我真的想用我的测试套件存储我的模拟数据对象。

在此处输入图片说明

Bri*_*ams 7

默认glob模式Jest用于查找测试文件

[ "**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)" ]

换句话说...

默认情况下,它会查找.js.jsx.ts.tsx里面的文件__tests__夹,以及带有后缀的任何文件.test.spec(如Component.test.jsComponent.spec.js)。它还会找到名为test.js或 的文件spec.js

因为mockData.js__tests__它的子目录中,它被默认的 glob 模式找到并被假定为一个测试。

为了Jest避免将其mockData.js视为测试,您可以Jest使用testMatch配置选项更改用于查找测试的 glob 模式,或者使用正则表达式而不是 glob 模式 use testRegex

  • 要完成这个答案:`package.json`中的以下配置(请参阅`jest`部分)将解决这个问题:`"testMatch": [ "**/?(*.)+(test).[jt] s?(x)" ]`。 (3认同)

Gab*_*eal 6

在您的测试实用程序文件中调用skip将禁止违反规则:

test.skip('Workaround', () => 1)
Run Code Online (Sandbox Code Playgroud)

添加这个是为了完整性。布赖恩的testMatch/testRegex解决方案对我来说似乎更干净。