为了账号安全,请及时绑定邮箱和手机立即绑定

在 Jest 中是否有一种直接的方法来指定要运行的测试数组/列表?

在 Jest 中是否有一种直接的方法来指定要运行的测试数组/列表?

慕标5832272 2021-09-17 12:54:25
问题我正在编写几个测试套件(使用 Jest 和 Puppeteer)来自动化我的 AngularJS 应用程序主页的测试。在这一点上,我的一个测试文件(又名测试套件)中有近 70 个测试。我想知道是否可以将一组测试名称传递给 Jest 的-t选项,以在我的一个测试文件中运行特定的测试子集。这将有助于调试,因为我有一些相互依赖的测试,因此总是需要一起运行,但最好避免每次我想要运行整个测试套件(运行大约一分钟)调试一些测试。我的测试环境概述:傀儡师版本:1.19.0玩笑版本:24.8.0我试过的玩笑命令我一直在阅读Jest 文档,到目前为止,我遇到了一些有可能解决这个问题的 CLI 选项,但到目前为止还没有取得成果。jest name-of-test-file.spec.js:这会在单个测试文件中运行所有测试,但我不想这样做,我只想在测试文件中运行特定的测试子集。jest name-of-test-file.spec.js -t name-of-test:这仅在测试文件中运行单个测试,但我想运行几个不同的相互依赖的测试。jest name-of-test-file.spec.js --testPathPattern=<regex>:这将运行名称与我通过的正则表达式模式匹配的所有测试。这可能会有所帮助,但到目前为止,我还无法提出一个与三个唯一字符串(即测试名称)匹配的有效正则表达式。不幸的是,我的测试名称差别很大,所以我很难想出一个更通用的正则表达式来匹配我想要运行的特定测试。最后的想法/问题:我认为选项 3 最有潜力,但我一直找不到有效的正则表达式。
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

如果该regex选项对您不起作用,您可以使用it.only(或test.only) 仅在模块内运行特定测试。


来自文档的引用:


当您调试大型代码库时,您通常只想运行测试的子集。您可以使用.only指定哪些测试是您要运行的唯一测试。


代码示例


it.only('This test will run', /*... */);

it.only('This test will also run', /*... */);

it('This test will not run', /*... */);

但是,如果您有多个测试文件,您仍然需要指定要运行的模块或文件:


jest name-of-test-file-to-run.spec.js


查看完整回答
反对 回复 2021-09-17
  • 1 回答
  • 0 关注
  • 237 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信