【问题标题】:Tests total failure after abrupt Ember upgrade在 Ember 突然升级后测试完全失败
【发布时间】:2017-05-31 08:51:54
【问题描述】:

我正在开发一个在 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? 的位置。如何检查是否发生了这种情况,如果是,为什么没有加载,我怎样才能让它再次加载?

如果有人能解释一下这里可能发生的事情,我将不胜感激。

【问题讨论】:

    标签: unit-testing ember.js phantomjs qunit ember-qunit


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 2018-01-12
      • 1970-01-01
      • 2018-05-20
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 2022-06-27
      • 2020-03-18
      相关资源
      最近更新 更多