当 运行 使用 ember-qunit 对基于 ember-cli 构建的 ember 应用程序进行测试时,如何让源映射工作

How can I get source maps to work when running tests using ember-qunit for an ember app built on ember-cli

我有一个使用 ember-cli 构建的 Ember 应用程序,我正在使用 ember-qunit 测试适配器编写测试,并 运行 在浏览器中使用 testem 按照 ember-cli 文档中的说明。尽管在 Google Chrome 中调试在我对我的应用程序感兴趣时工作正常,但在 运行 测试时我无法使用断点等许多调试功能。

我经常 运行 遇到一个问题,即尽管我的实际应用程序似乎可以正常工作,但我的测试还是失败了,为了调查这个问题,我想在我的测试 运行 期间单步执行代码.

但是当我进入 vendor.js 中出现的代码时,我只看到 vendor.js 中的以下内容:

// Please wait a bit.
// Compiled script is not shown while source map is being loaded!

这两行是文件的第 6 和第 7 行。在此之前的行是空白的,这两行是文件中的最后一行。调试器突出显示了文件的第一行,就好像这是源代码中的当前位置一样,但由于某种原因它无法显示源代码。

我可以继续单步执行代码,但我什么也看不到。

但是,如果我在开发人员工具源文件列表的源列表中找到 vendor.js,那么它将作为单独的源选项卡打开,我可以看到我的所有代码。此时,我有两个标记为 vendor.js 的选项卡,一个包含我的所有供应商资产,另一个包含上面引用的那些行。

我猜测我的测试服务方式与我的应用程序在令人困惑的开发环境中的服务方式之间存在一些差异 Chrome。

我正在使用以下版本的东西:

ember 1.9.1
ember-data 1.0.0-beta.14.1
ember-cli 0.1.9
qunit 1.17.1
ember-qunit 0.2.0
testem 0.6.33

尽管我查了很多资料,但我真的没有任何关于问题根源的线索。也许这与 testem 如何 运行 测试有关?或者它可能是包含在我的测试中的东西有一个混乱的源映射?

感谢任何帮助或想法。

我在 ember-cli 0.2.2。

我 运行 也遇到过这个问题,发现这个 Chrome issue 处理源映射。 对此问题发表评论的人建议暂时使用 Chrome Canary 版本:

我目前正在使用 Canary 构建来放置断点并调试我的 ember 代码。

在这里获取:https://www.google.com/chrome/browser/canary.html