首页 > 解决方案 > Karma 测试:在公司代理后面加载 JS 文件时出错

问题描述

我正在使用 Open WC Karma-ESM 插件并尝试运行我的测试。我已将必要的脚本添加到我的package.json中:

    "test": "npx karma start --coverage",
    "test:gate": "npx karma start",
    "test:watch": "npx karma start --coverage --auto-watch=true --single- 
    run=false",

但是,当我npm run test时,我在无头 Chrome 的终端中收到此错误:

SyntaxError: Unexpected token '<'Chrome 79.0.3945 (Mac OS X 10.14.6) ERROR
Uncaught SyntaxError: Unexpected token '<'

在浏览器中,我可以看到它成功加载了 Karma 的初始文件以运行其测试:

http://localhost:9876/
http://localhost:9876/socket.io/socket.io.js
http://localhost:9876/karma.js
http://localhost:9876/socket.io/?EIO=3&transport=polling&t=My6P1Ln
http://localhost:9876/socket.io/?EIO=3&transport=polling&t=My6P1M3&sid=Cc2mqcjmMzmq2IN1AAAB
http://localhost:9876/socket.io/?EIO=3&transport=polling&t=My6P1M4&sid=Cc2mqcjmMzmq2IN1AAAB

然后它遇到了101 Switching Protocols的响应。并且响应正文包含所有Unexpected token <错误和Page Restricted错误:

ws://localhost:9876/socket.io/?EIO=3&transport=websocket&sid=Cc2mqcjmMzmq2IN1AAAB

因此,我的公司代理限制并拒绝了这些页面,它们返回 404,从而解释了错误。我已更新我的 Chrome 代理首选项以绕过这些主机和域的代理设置:localhost、127.0.0.1

但这并没有解决问题。

只是为了抛出一个曲线球,当我运行sudo npm run test它工作得很好。现在这完全让我感到困惑。

非常感谢任何提示 - 在此先感谢。与这个斗争。

标签: javascriptkarma-runner

解决方案


当您将 http_proxy 和 https_proxy 定义为环境变量时,就会发生此错误。解决方法是添加一个新的环境变量 NO_PROXY=localhost,127.0.0.1。这个虫子害了我好几天。我希望它可以帮助某人。


推荐阅读