我正在开发一款在Ember 2.2上停留一段时间的应用程序,我们终于花时间升级到Ember 2.10。在修复代码中的所有弃用警告并相应地升级某些依赖项的版本之后,我们终于让应用程序在浏览器中100%工作。然而,当我们现在运行余烬测试时,它们以致命的方式失败(即测试甚至没有运行)。
这是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?
。如何检查这是否正在发生,如果是,为什么不加载,如何再次加载?
如果有人能够对这里发生的事情有所了解,我将不胜感激。
答案 0 :(得分:1)
好的,我最终找到了问题的原因,所以我在这里回答这个问题是为了完整性和未来的参考。
tests/index.html
文件需要进行一些更改才能正确解决Ember版本更改后testem.js
文件所在的位置。所以不要这样:
<script src="testem.js" integrity=""></script>
我必须在/
attr值前添加src
。结果看起来像这样:
<script src="/testem.js" integrity=""></script>
我们还有其他一些问题要解决,但我们以前遇到的致命失败事件已经消失了。