突然 Ember 升级后测试完全失败

Tests total failure after abrupt Ember upgrade

我正在开发一个在 Ember 2.2 上卡住了一段时间的应用程序,我们终于花时间升级到 Ember 2.10。在修复了代码中的所有弃用警告,并相应地升级了一些依赖项的版本之后,我们终于让应用程序在浏览器中 100% 运行。但是,当我们现在 运行 ember 测试时,它们以致命的方式失败(即测试甚至不是 运行)。

这是 ember test 命令的输出:

$ ember test
cleaning up...
Built project successfully. Stored in "/Users/ernesto/code/my-app/frontend/tmp/core_object-tests_dist-oanj8mZd.tmp".
not ok 1 Browser "phantomjs /Users/ernesto/code/my-app/frontend/node_modules/testem/assets/phantom.js http://localhost:7357/4233/tests/index.html?hidepassed" failed to connect. testem.js not loaded?

1..1
# tests 1
# pass  0
# skip  0
# fail  1
Not all tests passed.
Error: Not all tests passed.
    at EventEmitter.App.getExitCode (/Users/ernesto/code/my-app/frontend/node_modules/testem/lib/app.js:434:15)
    at EventEmitter.App.exit (/Users/ernesto/code/my-app/frontend/node_modules/testem/lib/app.js:189:23)
    at /Users/ernesto/code/my-app/frontend/node_modules/testem/lib/app.js:103:14
    at tryCatcher (/Users/ernesto/code/my-app/frontend/node_modules/testem/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/ernesto/code/my-app/frontend/node_modules/testem/node_modules/bluebird/js/release/promise.js:510:31)
    at Promise._settlePromise (/Users/ernesto/code/my-app/frontend/node_modules/testem/node_modules/bluebird/js/release/promise.js:567:18)
    at Promise._settlePromise0 (/Users/ernesto/code/my-app/frontend/node_modules/testem/node_modules/bluebird/js/release/promise.js:612:10)
    at Promise._settlePromises (/Users/ernesto/code/my-app/frontend/node_modules/testem/node_modules/bluebird/js/release/promise.js:691:18)
    at Async._drainQueue (/Users/ernesto/code/my-app/frontend/node_modules/testem/node_modules/bluebird/js/release/async.js:133:16)
    at Async._drainQueues (/Users/ernesto/code/my-app/frontend/node_modules/testem/node_modules/bluebird/js/release/async.js:143:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/ernesto/code/my-app/frontend/node_modules/testem/node_modules/bluebird/js/release/async.js:17:14)
    at processImmediate [as _immediateCallback] (timers.js:383:17)

我可以从此错误消息中提取的唯一线索是它所说的 testem.js not loaded?。我如何检查这是否是正在发生的事情,如果是,为什么它没有加载,我怎样才能让它再次加载?

如果有人能阐明这里可能发生的事情,我将不胜感激。

好的,我终于找到了问题的原因,所以我在这里回答这个问题是为了完整性和未来的参考。

tests/index.html 文件需要进行一些更改以正确解决 Ember 版本更改后 testem.js 文件所在的位置。所以不是这个:

<script src="testem.js" integrity=""></script>

我必须在 src 属性值前面添加一个 /。它最终看起来像这样:

<script src="/testem.js" integrity=""></script>

我们还有一些其他问题需要解决,但我们之前遇到的致命故障已经消失了。