无法进行简单的验收测试以正常运行

Can't get simple acceptance test to function properly

访问会进行得很好,我在右下角看到了实时应用程序页面,但是等号断言永远不会发生,基本上测试总是 "running" 并且永远不会做出任何断言,任何指导都会非常感谢,我在 ember-cli 0.1.11 和 ember 1.9.1 上,我正在通过 localhost:4200/provider/tests 进行测试,其中我的 baseUrl 设置为 ' /供应商/'

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

var application;

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

test('visiting /login', function() {
 visit('/login');

andThen(function() {
 equal(currentPath(), 'login');
});
});

我的 startApp 看起来像这样

 import Ember from 'ember';
 import registerAcceptanceTestHelpers from './201-created/register-acceptance-test-helpers';
 import Application from '../../app';
 import config from '../../config/environment';
 import 'simple-auth-testing/test-helpers';

 export default function startApp(attrs) {
   var application;

   var attributes = Ember.merge({}, config.APP);
    attributes = Ember.merge(attributes, attrs); // use defaults, but you can  override;

  Ember.run(function() {
      application = Application.create(attributes);
      application.setupForTesting();
      registerAcceptanceTestHelpers();
     application.injectTestHelpers();
  });

  return application;
}

您的测试文件的名称是什么?约定是在文件名中有 -test 后缀。

如果您没有,那么您的文件将不会被识别为测试文件。在您的情况下,它可能是 login-test.js.

这有帮助吗?

背景


我 运行 遇到了同样的问题,但是当我使用 ember-cli-coffeescript 时。我无法 运行 甚至简单的集成测试。我的应用程序是使用旧的 ember cli 生成的,然后我更新了 cli 版本,但似乎我已经弃用了测试蓝图生成。我 运行 ember new,安装了 ember-cli-coffeescript 并生成了简单的 acceptance-test。我注意到存在一些差异,您不能在 module.setup.

中 return application

解决方案


在 CoffeeScript 中明确 return nothing from setup hook:

module 'Acceptance: Login',
  setup: ->
    application = startApp()
    ###
    Don't return as Ember.Application.then is deprecated.
    Newer version of QUnit uses the return value's .then
    function to wait for promises if it exists.
    ###
    return

它是用正确的挂钩等动态生成的,但是如果您之前使用过旧版本,则必须重新安装 ember-cli-coffeescript 插件:

ember install:addon ember-cli-coffeescript

我希望这能解决一些人的挫折感和时间。

好的,我发现问题与

有关

“我们通过 run.later

在应用程序中设置了多个定时定时器 运行

当测试操作(例如单击)超出我们应用程序中的登录范围时,计时器将启动并阻止所有后续的 thennables。"

"The problem this causes is that wait used by Ember.Testing waits until all timers have been executed before moving on. Which will never happen in most of my routes due to this polling timer."

在此处和此处提及

https://github.com/emberjs/ember.js/issues/3008#issuecomment-73246784

http://discuss.emberjs.com/t/proper-way-to-handler-timers-w-ember-testing/4693

希望这对人们有所帮助