很简单,我只想用Jest运行一个测试。
我放it.only
或,describe.only
但它仍然运行大量测试。我认为它可以运行自上次提交以来的所有测试,但它不应在only
显式设置了标志的情况下就具有这种行为,对吗?
是什么导致此行为,以及如何运行单个测试?
很简单,我只想用Jest运行一个测试。
我放it.only
或,describe.only
但它仍然运行大量测试。我认为它可以运行自上次提交以来的所有测试,但它不应在only
显式设置了标志的情况下就具有这种行为,对吗?
是什么导致此行为,以及如何运行单个测试?
Answers:
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
从过滤的测试文件中跳过所有其他测试。
.only
仅适用于同一文件的测试?
it.only
或it.skip
针对包含语法错误的单个测试,所有测试都将失败。当然,将不会执行模式所排除的文件中的代码。imgur.com/z9FlQEZ-戴维德·卡拉宾
if.only
了Carousel组件中的console.logs次数也与您在观看模式中对该组件进行的跳过/跳过测试一样多。
it.only
并且describe.only
仅适用于它们所在的模块。如果在过滤多个文件中的测试时遇到问题,则可以使用jest -t name-of-spec
,过滤与规格名称匹配的测试(与describe或test中的名称匹配)。
来源:https : //facebook.github.io/jest/docs/en/cli.html
例如,我将重点放在当前正在编写的测试中(使用的测试脚本package.json
):
npm test -- -t "test foo"
describe
块)中都存在的字符串参数。如果是这种情况,您应该缩小到要关注的确切测试名称。
就像这样:
jest sometest.test.js -t "some expression to match a describe or a test"
它会测试所有具有名称sometest.test.js
并基于-t选项匹配的文件,如果您只想测试特定文件,则可以执行以下操作:
jest src/user/.../sometest.test.js
launch.json
的配置文件,将在特定的测试案例引发的测试:medium.com/better-programming/...
对我来说,如果我使用如下2个参数,它就可以工作:
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