我有这两个 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 时,问题就消失了。现在,如果我能弄清楚我们在该更新中的其他失败测试......