很简单,我想用Jest运行一次测试。
我放了it.only
或describe.only
但它仍然运行了很多测试。
我认为自上次提交以来它运行了所有测试,但它不应该明确设置only
标志的这种行为,对吗?
导致此行为的原因以及如何运行单个测试?
答案 0 :(得分:53)
Jest 并行化测试运行,并且它不知道预先测试它 应该运行,哪些不应该运行。 这意味着当您使用“fit”时,它只会在该文件中运行一个测试 但仍然在项目中运行所有其他测试文件。
fit
,fdescribe
和it.only
,describe.only
具有相同的目的,跳过其他地方,只运行我。
来源:https://github.com/facebook/jest/issues/698#issuecomment-177673281
在运行
等测试时使用jest
过滤机制
jest --config=jest.config.json --watch
您可以按testname
或filename
过滤测试,只需按照终端中的说明进行操作
按p
,然后输入文件名
然后您可以使用describe.only
和it.only
,它将跳过经过筛选的测试文件中的所有其他测试。
答案 1 :(得分:13)
it.only
和describe.only
仅适用于他们所在的模块。如果您在多个文件中过滤测试时遇到问题,可以使用jest -t name-of-spec
,过滤符合规范的测试名称(与描述或测试中的名称匹配)
资料来源:https://facebook.github.io/jest/docs/en/cli.html
例如,我专注于我正在编写的测试(使用package.json
中的测试脚本):
npm test -- -t "test foo"
答案 2 :(得分:1)
是这样的:
jest sometest.test.js -t "some expression to match a describe or a test"
它将测试名称为sometest.test.js
并基于-t选项匹配的所有文件,如果您只想测试特定文件,则可以执行以下操作:
jest src/user/.../sometest.test.js
答案 3 :(得分:0)
对我来说,如果我使用以下2个参数,则可以正常工作:
yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"
-watch:是可选的
-f:将对文件进行过滤,因此,如果您有很多同名测试,请指定精确文件的完整路径
-t:使用测试的“描述”名称或“它”名称
答案 4 :(得分:-1)
尝试输入完整路径会导致 0 个匹配该模式,即使文件存在并且有几个断言。