我在fix-order-test.js文件中有一个测试“works with nested children”。

运行下面的代码将运行文件中的所有测试。

jest fix-order-test

如何只运行一个测试?下面的方法无法工作,因为它搜索指定的正则表达式的文件。

jest 'works with nested children'

当前回答

开玩笑地说,这是唯一对我有用的东西:

is -- test/unit/name-of-test-file.test.ts

观察

is --watch -- test/unit/name-of-test-file.test.ts

其他回答

在检查了Jest CLI文档之后,我发现这就是我们在特定文件中运行特定测试的方式。

jest --findRelatedTests path/to/fileA.js path/to/fileB.js -t "test name"

纱,

yarn test --findRelatedTests path/to/fileA.js path/to/fileB.js -t "test name"

npm,

npm test -- --findRelatedTests path/to/fileA.js path/to/fileB.js -t "test name"

如需参考,请检查Jest Cli选项

我花了一段时间才找到这个,所以我想在这里为像我这样使用纱线的人添加它:

yarn test -i "src/components/folderX/folderY/.../Filename.ts" -t "name of test"

文件名在-i后面,testname在-t后面。

正如在其他答案中提到的,测试。仅过滤掉同一文件中的其他测试。因此其他文件中的测试仍将运行。

因此,要运行单个测试,有两种方法:

选项1:如果您的测试名称是唯一的,您可以在监视模式下输入t,并输入您想要运行的测试的名称。 选项2: 在监视模式下点击p,为您想运行的文件名输入一个正则表达式。(在监视模式下运行Jest时会显示类似的相关命令)。 换成它。只在您想要运行的测试中使用。

使用上述任何一种方法,Jest都将只运行您指定的文件中的单个测试。

你可以尝试使用下面的命令,因为它对我有用

npm run test -- -t 'Your test name'

或者你可以像下面这样在测试中添加.only,然后运行npm run test命令

it.only('Your test name', () => {})

您还可以使用f或x来集中或排除一个测试。例如

fit('only this test will run', () => {
   expect(true).toBe(false);
});

it('this test will not run', () => {
   expect(true).toBe(false);
});

xit('this test will be ignored', () => {
   expect(true).toBe(false);
});