突然 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>
我们还有一些其他问题需要解决,但我们之前遇到的致命故障已经消失了。
我正在开发一个在 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>
我们还有一些其他问题需要解决,但我们之前遇到的致命故障已经消失了。