1

我已经使用 ember 一个多月了,但我还没有找到解决我遇到的一些测试不一致问题的解决方案。

问题是当我从命令行运行 ember test 并在浏览器中访问 /tests 时,有时我会看到不同的测试总数。似乎使用 phantomjs 进行 ember 测试,因为测试运行器正在跳过一些测试。最重要的是,结果似乎也不一致。

例如,我有一个简单的验收测试:

import Ember from 'ember';
import startApp from '../helpers/start-app';

var App;

module('Acceptance: Login', {
  setup: function() {
    App = startApp();
  },
  teardown: function() {
    Ember.run(App, 'destroy');
  }
});

test('Page contents', function() {
  visit('/login');

  andThen(function() {
    equal(find('form.login').length, 1);
  });
});

当我访问 /tests 时,我的所有测试都通过了,但是当我运行 Ember 测试时,我遇到了一个失败:

not ok 1 PhantomJS 1.9 - Acceptance: Login: Page contents
---
    actual: >
        0
    expected: >
        1
    Log: >
...

提前感谢您的帮助。

4

1 回答 1

1

我和你有同样的挫败感,直到我仔细观察了被计算的东西。

当我在浏览器中运行测试时,它会显示正在运行的断言数量。当我运行 phantomjs(通过“ember test”命令行)时,日志只报告运行了多少测试。测试中可以有许多断言。

如果在浏览器中完成测试运行后滚动到页面的最底部,我会看到最终测试旁边的数字与 phantomjs 中运行的测试总数相匹配。

至于为什么您的测试在 phantomjs 中中断,可能是由于很多原因。如果没有看到您的车把和实现,可能很难说,但我已经看到时间问题以及仅在无头浏览器(又名 phantomjs)中失败的 jquery 绑定问题。

如果您发布更多细节,我可能会提供帮助。

于 2014-12-11T01:49:41.153 回答