1

我有这两个 Ember 集成测试,A 和 B。(我还有很多,但在调试时,我已经删除了所有其他测试以隔离问题。与 A 相同的文件中有 9 个测试,我评论了其他 8.) 如果 A 在 B 之前运行,B 将失败。如果 B 自己运行,或者在 A 之前运行,它将通过。

从这个描述中可以清楚地看出,A 正在对 B 搞砸的测试环境做一些事情。然而,在对测试和与日志消息有关的生产代码进行大量加盐之后,我并没有更接近于弄清楚发生了什么,而且我如果有明显的问题,我希望其他人能发现。

现在我正在仔细afterEach研究这两个测试中的块。以下是测试 A的beforeEach和块的概要:afterEach

beforeEach: function() {
  server = new Pretender(function() {
    // Pretender setup removed for brevity
  });

  App = startApp();
},
afterEach: function() {
  server.shutdown();
  Ember.run(App, App.destroy);
}

afterEach几乎是库存的 ember-cli 代码,但它让我有点困惑。上的文档Ember.run()建议它应该获得一个函数作为参数,但我们在这里没有给出它,所以我不确定它是如何工作的。而且,Pretendershutdown()调用应该在 Ember.run 中(还是在它自己的 Ember.run 中)?

版本记录:ember-cli 0.2.0、Ember 1.10.1。

ETA:当我更新到 ember-cli 0.2.3 和 Ember 1.11.3 时,问题就消失了。现在,如果我能弄清楚我们在该更新中的其他失败测试......

4

1 回答 1

2

您的设置和拆卸看起来不错。它们是常用的并且定义正确。

但是,在 ember-qunit 上(仍然)存在关于未正确拆除应用程序的未解决问题 -请查看此处以查看进度

正如你所说,它不会发生在 Ember 1.13 中。

于 2015-05-15T07:09:10.257 回答