请教一下 JS/TS 使用 Jest 统计 code coverage 的问题。始终不能成功......

2020-06-17 14:29:39 +08:00
 yazoox

windows 10 & vscode & jest & react + typescipt

我直接在命令行 command window 里面输入 jest 能够成功运行,并跑完所有的 test

在 vscode 里面,我也设置好了 debug, 也能够跑完指定的 test file.

但现在就是没有办法统计关注文件的 code coverage

  1. 先在命令行里尝试:

比如:

jest --findRelatedTests agent-test.ts --collectCoverageFrom='["packages\agent\modules\agent.ts"]' --coverage

能够成功跑完 agent-test 的测试。能显示 code coverage 结果,但是是“空”的。修改成 packages\agent\modules\*.ts ,还是同样的结果。

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 |                  
----------|---------|----------|---------|---------|-------------------

如果我只运行

jest --findRelatedTests agent-test.ts --coverage

jest 跑完 agent-test.ts 后 ,提示"Running coverage on untested files...",这不是扯蛋么?我只想看我测试过的文件的 code coverage 是多少呀?如果不够,我好补充呢。这 untested files 是什么鬼?

  1. 再去 vscode 里面试试

debug 选项添加 (注:双引号和\都使用了转义)

"--collectCoverageFrom='[\"packages\\agent\\modules\\agent.ts\"]'"

"--coverage"

在 debug 窗口里却显示如下,即出现了“两个单引号” 和“三个单引号”,这个单引号,又不能 escape.

'--collectCoverageFrom=''["packages\agent\modules\agent.ts"]''' '--coverage'

结果就是,根本就没有“触发”code coverage 相关操作,仅仅只是 跑完了测试。我不知道是不是单引号和\造成的问题......

Google 了好久,也没有找到解决方案,特来请教一下大家。 谢谢

1417 次点击
所在节点    JavaScript
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/682355

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX