Это была неприятная проблема в течение нескольких дней. Когда я начинаю пытаться писать приемочные тесты для своего приложения Ember, когда я использую функцию visit()
, URL-адрес изменяется в адресной строке браузера, поэтому, когда я меняю немного кода и происходит liveReload, он переходит с моей тестовой страницы на любую страницу, которую я сказал ей посетить в тестах.Приемочные испытания в Ember.js изменить URL-адрес в адресной строке
Чтобы устранить неполадки, я создал новое приложение, создал маршрут и шаблон для дома и создал для него приемочный тест, и он прошел отлично, не меняя 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');
});
});
Я обнаружил, что если вы переадресовываете свои маршруты, это приведет к нарушению приемочного тестирования, и вам потребуется запустить отдельный сервер cli на другом порту и с флагом среды, установленным в 'test' в соответствии с комментариями ниже. Ключ к пониманию того, что вызывает проблему, заключается в том, что Маршруты в вашем приложении нарушают приемочные тесты из-за того, что тип местоположения был тем, что вы установили в режиме разработки. –