У меня есть простой проект angular/requirejs/node, который правильно загружается при просмотре из браузера. Пытаюсь получить e2e тесты с настроенной кармой.
Я скопировал все конфигурации e2e и структуры каталогов из семя angular-require-js в мой собственный проект. К сожалению, тесты в моем собственном проекте дают странные (и постоянно меняющиеся!) результаты. Вот урезанный тест, который я пытаюсь запустить:
describe('My Application', function() {
beforeEach(function() {
browser().navigateTo('/');
sleep(0.5);
});
it('shows an "Ask a Question" button on the index page', function() {
expect(element('a').text()).toBe('Ask a Question');
});
});
Иногда тест не проходит
Executed 1 of 1 (1 FAILED) (0.785 secs / 0.614 secs)
Firefox 22.0 (Mac) My Application shows an "Ask a Question" button on the index page FAILED
element 'a' text
http://localhost:9876/base/test/lib/angular/angular-scenario.js?1375035800000:25397: Selector a did not match any elements.
(но на странице ЕСТЬ a
элемента!)
Иногда тест зависает
Executed 0 of 0
! В этих случаях браузер запуска тестов показывает, что он пытается запустить тест, но никогда не завершает его:
Это просто останется таким навсегда. Мое приложение ОТОБРАЖАЕТСЯ отображается в браузере во время этого зависания.
Без element('a')
всегда проходит
Единственный способ получить стабильные результаты — избегать element()
. Если я ожидаю (true).toBe(true), тогда 1 из 1 тестов всегда проходит.
Как я могу отладить это?
Я в недоумении, как двигаться дальше. Тестовый браузер правильно отображает мое приложение с соответствующим элементом "a" и всем остальным. Сам бегун тестов, кажется, только иногда распознает, что он должен что-то запускать, и НИКОГДА не находит элемент a
. Есть ли способ пройти через процесс запуска теста? Является ли это распространенной проблемой, возникающей при неправильной настройке [x]?
Спасибо за любые предложения!
karma-e2e.conf.js
basePath = '../';
files = [
'test/lib/angular/angular-scenario.js',
ANGULAR_SCENARIO_ADAPTER,
'test/e2e/**/*.js'
];
autoWatch = false;
browsers = ['Firefox'];
singleRun = true;
proxies = {
'/': 'http://localhost:3000/'
};
urlRoot = "__karma__";
junitReporter = {
outputFile: 'test_out/e2e.xml',
suite: 'e2e'
};