yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"
旗帜:
--watch: is optional
-f: will do filtering of your files, so if you have a lot of tests with the same name, specify the full path to the exact file
-t: works with 'describe' name or 'it' name of your test
6条答案
按热度按时间4ngedf3f1#
Jest并行化测试运行,它不知道哪些测试应该运行,哪些不应该运行。这意味着当你使用"fit"时,它只会运行那个文件中的一个测试。但是它仍然会运行你项目中的所有其他测试文件。
fit
、fdescribe
和it.only
、describe.only
具有相同的用途:跳过其他测试只运行我的。图片来源:www.example.comhttps://github.com/facebook/jest/issues/698#issuecomment-177673281
使用Jest过滤机制。当你运行你的测试时,
您可以通过
testname
或filename
过滤测试,只需按照终端中的说明操作即可。按
p
,然后键入文件名。然后,您可以使用
describe.only
和it.only
,这将跳过过滤后的测试文件中的所有其他测试。w3nuxt5m2#
it.only
和describe.only
仅适用于它们所在的模块。如果在过滤多个文件中的测试时遇到问题,可以使用jest -t name-of-spec
,过滤与指定名称匹配的测试(与describe或test中的名称匹配)。来源:Jest CLI Options
例如,我关注我目前正在编写的测试,如下所示(使用
package.json
中的测试脚本):npm test -- -t "test foo"
dohp0rv53#
事情是这样的:
它将测试所有名称为
sometest.test.js
并基于-t选项匹配的文件。如果您只想测试特定的文件,您可以这样做:bqf10yzr4#
对于我来说,如果我使用如下两个参数,它就可以工作:
旗帜:
rpppsulh5#
我创建了一个命令,让Jest像你(和我)期望的那样工作。这是正在进行的工作,但应该像这样工作:
从包含
.only
tests/descripts的文件运行测试,如果没有.only
,则运行所有文件。即使这在一些边缘情况下不起作用,你也可以把它作为一个参考。我可能会保持这个更最新的here。
您可以为它创建一个别名,将它放在shell脚本或package.json脚本中。
更新:最后的
| grep . || npx jest
是一个变通方法,因为xargs应该在没有输入的情况下运行一次,但是在我的机器上没有。gab6jxml6#
尝试输入完整路径会导致0与该模式匹配,即使该文件存在并且有几个Assert。