一个通过 Ember 集成测试破坏了下一个:糟糕的拆卸块?
One passing Ember integration test breaks the next one: bad teardown block?
我有这两个 Ember 集成测试,A 和 B。(我还有很多,但在调试时我已经删除了所有其他测试以隔离问题。有 9 个测试在与 A 相同的文件中,我评论了另一个 8.) 如果 A 在 B 之前运行,则 B 将失败。如果B自己跑,或者先于A跑,就pass。
从这个描述看来很明显,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 代码,但它让我有点困惑。 The documentation on Ember.run()
建议它应该得到一个函数作为参数,但我们在这里没有给它一个,所以我不确定它是如何工作的。而且,Pretender shutdown()
调用应该在 Ember.run 内(还是在它自己的 Ember.run 内)?
版本,备案:ember-cli 0.2.0,Ember 1.10.1。
ETA:当我更新到 ember-cli 0.2.3 和 Ember 1.11.3 时,问题就消失了。现在如果我能弄清楚 the other failing tests we have with that update...
您的设置和拆卸看起来不错。它们很常用并且定义正确。
但是,ember-qunit 上存在(仍然)未解决的问题,关于未正确拆除应用程序 - take a look here to see the progress。
如您所说,Ember 1.13 中不会发生这种情况。
我有这两个 Ember 集成测试,A 和 B。(我还有很多,但在调试时我已经删除了所有其他测试以隔离问题。有 9 个测试在与 A 相同的文件中,我评论了另一个 8.) 如果 A 在 B 之前运行,则 B 将失败。如果B自己跑,或者先于A跑,就pass。
从这个描述看来很明显,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 代码,但它让我有点困惑。 The documentation on Ember.run()
建议它应该得到一个函数作为参数,但我们在这里没有给它一个,所以我不确定它是如何工作的。而且,Pretender shutdown()
调用应该在 Ember.run 内(还是在它自己的 Ember.run 内)?
版本,备案:ember-cli 0.2.0,Ember 1.10.1。
ETA:当我更新到 ember-cli 0.2.3 和 Ember 1.11.3 时,问题就消失了。现在如果我能弄清楚 the other failing tests we have with that update...
您的设置和拆卸看起来不错。它们很常用并且定义正确。
但是,ember-qunit 上存在(仍然)未解决的问题,关于未正确拆除应用程序 - take a look here to see the progress。
如您所说,Ember 1.13 中不会发生这种情况。