很简单,我只想用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