我在fix-order-test.js文件中有一个测试“works with nested children”。
运行下面的代码将运行文件中的所有测试。
jest fix-order-test
如何只运行一个测试?下面的方法无法工作,因为它搜索指定的正则表达式的文件。
jest 'works with nested children'
我在fix-order-test.js文件中有一个测试“works with nested children”。
运行下面的代码将运行文件中的所有测试。
jest fix-order-test
如何只运行一个测试?下面的方法无法工作,因为它搜索指定的正则表达式的文件。
jest 'works with nested children'
当前回答
如果有人试图使用joke -t '<testName>'并想知道为什么它不起作用,那么值得注意的是-t参数实际上是一个正则表达式模式,而不是字符串字面量。
如果您的测试名称中没有特殊字符,那么它就会像预期的那样工作(使用来自它的字符串或描述或它们的组合)。
如果您的测试名称确实有特殊字符,如括号,只需用反斜杠转义它们。例如,这样的测试:
it("/ (GET)", () => {
return request(app.getHttpServer())
.get("/health")
.expect(200)
.expect("Hello World");
});
可以用jest -t "\/ \(GET\)"作为目标。
regex也不需要匹配整个字符串,因此如果您希望基于一致的命名约定运行一个子集,则可以匹配公共部分。
其他回答
如果你把jest作为脚本命令运行,比如npm test,你需要使用下面的命令让它工作:
npm test -- -t "fix order test"
Use:
npm run test -- test-name
只有当您的测试规范名称是唯一的时,这才会起作用。
上面的代码将引用一个名为test-name.component.spec.ts的文件
如果有人试图使用joke -t '<testName>'并想知道为什么它不起作用,那么值得注意的是-t参数实际上是一个正则表达式模式,而不是字符串字面量。
如果您的测试名称中没有特殊字符,那么它就会像预期的那样工作(使用来自它的字符串或描述或它们的组合)。
如果您的测试名称确实有特殊字符,如括号,只需用反斜杠转义它们。例如,这样的测试:
it("/ (GET)", () => {
return request(app.getHttpServer())
.get("/health")
.expect(200)
.expect("Hello World");
});
可以用jest -t "\/ \(GET\)"作为目标。
regex也不需要匹配整个字符串,因此如果您希望基于一致的命名约定运行一个子集,则可以匹配公共部分。
你可以尝试使用下面的命令,因为它对我有用
npm run test -- -t 'Your test name'
或者你可以像下面这样在测试中添加.only,然后运行npm run test命令
it.only('Your test name', () => {})
Jest文档建议如下:
如果测试失败,首先要检查的事情之一应该是 当测试是唯一运行的测试时,测试是否失败。在开玩笑 只运行一个测试很简单——只是临时更改该测试 命令到test.only
test.only('this will be the only test that runs', () => {
expect(true).toBe(false);
});
or
it.only('this will be the only test that runs', () => {
expect(true).toBe(false);
});