使用ember-cli测试已部署的ember应用程序

时间:2017-06-06 09:19:24

标签: selenium ember.js ember-cli acceptance-testing

我知道ember-cli可以用于使用默认测试运行程序的应用程序的写单元,集成和验收测试:QUnit和PhantomJS。 我想使用ember-cli 为远程网站编写验收测试。我能够为使用以下方法创建的本地应用程序编写基本测试用例:

ember new <login-test-repo>
ember generate acceptance-test login-test

我可以在本地应用上填写,点击并运行测试,但是当我在环境中更改rootURL时需要测试远程网站,ember-cli会添加“/” 在远程网站URL的开头,测试失败并显示错误:

The URL "/https://my-website.com" did not match any routes in your application

我很擅长使用ember-cli测试前端应用程序。我已经使用selenium测试了相同的工作流程,我可以轻松地废弃并运行网页的验收测试。

任何有关为远程网页设置ember-cli路由的帮助都会有很大帮助。感谢。

1 个答案:

答案 0 :(得分:0)

我不想成为厄运的先知,但这并不意味着使用Ember CLI工具测试远程网站。首先,您可以在配置中看到测试,开发和生产环境的不同配置。关键之一是:

ENV.APP.rootElement = '#ember-testing';

应用程序将呈现在该元素中。此外,应用程序在每次验收测试后关闭,然后再次启动,初始化程序被触发。它的工作原理是因为调用了start-app test helper:

import Ember from 'ember';
import Application from '../../app';
import Router from '../../router';
import config from '../../config/environment';

export default function startApp(attrs) {
  let application;

  let 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();
    application.injectTestHelpers();
  });

  return application;
}

您远程没有任何这些东西。另外,您希望您的测试如何获得这个远程网站?通过IFRAME - 我非常怀疑Ember CLI工具中有任何逻辑可以使它工作。 :)

我熟悉的标准是远程网站通过Selenium进行测试,例如QA或开发人员。单独的Ember CLI测试套件由开发人员维护。