【发布时间】:2017-05-01 12:21:57
【问题描述】:
我正在尝试在 WebStorm (2016.3.2) 中调试我的 Angular 2 测试。我尝试的第一件事就是在 Chrome 开发工具中执行此操作,但实际上我在 Sources 中看不到能够设置断点的脚本文件。请注意,您可以在 HTML 页面中看到脚本标签,但 Sources 中没有任何内容。
所以我做了更多的挖掘,发现你可以将 WebStorm 设置为run and debug unit tests。
测试确实运行了,但 WebStorm 断点从未被命中,而且发生的事情似乎“不正常”。显然,我之前没有使用过WebStorm来运行或调试单元测试,所以我不知道正常的是什么样子。
我确定我只是遗漏了一些东西,但是有这么多不熟悉的技术融合在一起,我不确定要拉出什么线索。
【问题讨论】:
-
如果你在开发工具的Sources选项卡中看不到你的文件,这意味着它们没有加载到VM中;您也不太可能在 Webstorm 中调试它们。您的配置一定有问题。此外,您的测试似乎没有被执行,响应被 Chrome 拒绝,因为 MIME 类型未知 - 你不关心吗?
-
是的,这似乎是 Webstorm 的产物。我会写下我在答案中找到的内容。
-
不,这不太可能是 WebStorm 问题。看起来服务器应用程序托管在(或涉及 ajax 等的其他服务器)出于安全原因发送响应标头“X-Content-Type-Options:nosniff”,这使得浏览器阻止执行具有未知 MIME 的脚本输入
-
它没有托管在单独的服务器上。它只是通过按下 Webstorm 中的小错误按钮启动的。我认为从终端启动与“ng test”不同的服务器(因为 ng test 不会发生该错误),但具体发生的事情是由 webstorm 完成的。所以,是的,它与 Webstorm 完全相关。 Webstorm 中可能有一个设置来解决这个问题,但我还没有找到它。
-
WebStorm 中没有设置会影响这一点。 “小错误按钮”只是在调试器中运行当前选择的运行配置...如果它是 karma 运行配置,它会运行 karma 将您的 karma.config.js 传递给它 - 仅此而已。
ng test做同样的事情 - 但它首先构建你的项目
标签: angular google-chrome-devtools webstorm karma-jasmine angular-cli