这几天来一直是个烦人的问题。当我开始尝试为我的Ember应用程序编写验收测试时,当我使用visit()
函数时,URL会在浏览器的地址栏中更改,因此当我更改一些代码和liveReload时碰巧,它会从我的测试页面导航到我告诉它在测试中访问的任何页面。
要进行问题排查,我ember new
了一个新应用,创建了/ home路由和模板,并为其创建了验收测试,并且传递正常,而不更改地址栏中的URL。我已对tests/helpers
中的代码进行了比较,结果与tests/index.html
相同。
我在没有得到答案的情况下搜遍了所有人。这对我来说已经足够难以进行测试了,但是像这样的问题只是切线,但非常恼人。如果有人知道为什么会发生这种情况,我会非常感谢你的解决方案。
举个例子,这是我的验收测试。它通过,但URL实际上发生了变化:
import Ember from 'ember';
import { module, test } from 'qunit';
import startApp from 'star/tests/helpers/start-app';
var application;
module('Acceptance: AddMilestone', {
beforeEach: function() {
application = startApp();
},
afterEach: function() {
Ember.run(application, 'destroy');
}
});
test('Adding milestones', function(assert)
visit('/projects/1234567/details');
andThen(function() {
assert.equal(currentPath(), 'project.details');
});
});
答案 0 :(得分:6)
在config/environment.js
中查找与此类似的块:
if (environment === 'test') {
// Testem prefers this...
ENV.baseURL = '/';
ENV.locationType = 'none';
// keep test console output quieter
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
}
ENV.locationType
环境的none
设置为test
吗?
如果没有,您是否正在更改应用中其他位置的locationType
?将其设置为none
只会留下地址栏。