You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Powershell下通过npm脚本运行带--collectCoverageFrom的Jest测试时如何转义引号和斜杠

解决方案

首先确认两个核心根因:

  1. Powershell 解析参数时会自动剥掉外层单引号,导致collectCoverageFrom需要的数组字符串格式被破坏
  2. Jest 本身跨平台兼容正斜杠路径,无需专门替换为Windows反斜杠,反而反斜杠会触发转义逻辑导致路径匹配失效

可行写法1:双引号包裹参数+反引号转义内部双引号

npm test "--" ExampleComponent --collectCoverageFrom="[`"**/ExampleComponent.tsx`"]" --watch

你可以通过加--dry-run参数验证jest实际接收的参数:

npm test "--" ExampleComponent --collectCoverageFrom="[`"**/ExampleComponent.tsx`"]" --watch --dry-run

输出的jest调用参数应该和你在Bash中得到的完全一致:

jest "ExampleComponent" "--collectCoverageFrom=[\"**/ExampleComponent.tsx\"]" "--watch"

可行写法2:使用停止解析符号--%(仅 Powershell 适用)

如果你不想处理复杂转义,可以在npm命令后加--%,告诉Powershell不要解析后续的参数,直接原样传递:

npm --% test ExampleComponent --collectCoverageFrom='["**/ExampleComponent.tsx"]' --watch

这种写法和你原来的Bash命令几乎完全一致,不需要额外修改参数格式。

验证方法

运行命令后查看jest输出的覆盖率报告,确认仅ExampleComponent.tsx出现在覆盖率统计列表中即可。

内容的提问来源于stack exchange,提问作者Ashley Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:54:03