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

时间:2019-02-01 10:19:10

标签: jestjs

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

我该如何解决?我真的很想将模拟数据对象与测试套件一起存储。

enter image description here

2 个答案:

答案 0 :(得分:3)

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

test.skip('Workaround', () => 1)

添加此内容是为了完整性。 Brian的testMatch / testRegex解决方案对我来说似乎更干净。

答案 1 :(得分:2)

Jest用于查找测试文件的default glob patterns

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

换句话说...

  

默认情况下,它会在.js文件夹中查找.jsx.ts.tsx__tests__文件,以及后缀为.test.spec(例如Component.test.jsComponent.spec.js)。它还会找到名为test.jsspec.js的文件。

由于mockData.js__tests__的子目录中,因此默认的glob模式可以找到它,并假定它是测试。

要防止Jest被视为测试mockData.js,您可以更改Jest用于使用testMatch配置选项查找测试的球形模式,或使用正则表达式而不是全局模式使用testRegex