You need to enable JavaScript to run this app. Windows下Protractor集成protractor-retry 2.0.1 测试无法重跑报JScript编译错误
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Protractor集成protractor-retry 2.0.1 测试无法重跑报JScript编译错误

Windows环境下protractor-retry 2.0.1自动重跑功能异常

基础运行与复现信息

  • 环境配置:Windows 10 19041版本,Node.js v14.16.1,npm v6.14.12,基于Protractor测试框架集成2.0.1版本的protractor-retry插件实现测试失败自动重跑能力
  • 复现范围:相同配置环境下,同组同事可完整复现全部异常现象

核心异常表现

  • 首轮测试执行完成后,未触发预期的失败自动重跑流程,同时抛出Microsoft JScript编译错误,错误提示可参考截图:错误提示截图
  • 经定位,异常发生在插件触发自动重跑环节:插件自动执行的重跑命令与首次启动测试的命令完全一致,但执行失败;手动在终端执行npm run e2e时,测试流程可正常运行
  • 插件自动拉起的失败进程为C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command npm run e2e,最终以退出码1终止运行
  • 公开渠道仅能检索到2011年前后的零散相关帖子,无落地可参考的解决方案

附npm运行日志

20 verbose cwd C:\Users\Scott Floyd\projects\site2\st-site
21 verbose Windows_NT 10.0.19041
22 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "e2e"
23 verbose node v14.16.1
24 verbose npm  v6.14.12
25 error code ELIFECYCLE
26 error errno 1
27 error st-site@0.0.0 e2e: `ng e2e iccmNA-e2e`
27 error Exit status 1

可落地排查方向

  • 排查Windows非交互式PowerShell的执行策略影响:插件拉起的PowerShell进程不会继承用户手动打开终端的会话上下文,系统默认的非交互式执行策略可能拦截未签名的脚本命令,直接触发JScript类编译报错
  • 核对插件对含空格项目路径的转义逻辑:当前项目路径C:\Users\Scott Floyd\projects\site2\st-site本身带空格,protractor-retry 2.0.1版本对Windows平台的命令拼接如果没做全量转义处理,会导致PowerShell拆分解析命令,直接执行失败
  • 绕开中间PowerShell调用层做验证:把插件默认通过PowerShell调起npm的重跑逻辑,替换为直接调用node运行protractor启动入口的方式,验证是不是shell层的兼容问题导致的执行失败
  • 提取重跑环节的全量日志:定位JScript编译错误对应的具体脚本行,确认是否存在脚本编码不匹配,导致PowerShell误将非JScript脚本按对应语法解析的问题

内容的提问来源于stack exchange,提问作者Scott Floyd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 20:06:06