Непоследовательные результаты запуска теста karma e2e. Как я могу отлаживать?

У меня есть простой проект 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'
};

person Riley Lark    schedule 03.08.2013    source источник
comment
Вы пробовали решение, опубликованное здесь? stackoverflow.com/questions/16304145/   -  person zs2020    schedule 03.08.2013
comment
Я не видел этот вопрос, спасибо! К сожалению, я думаю, что моя проблема в другом. Тестовый браузер запускается каждый раз, и я не получаю жалоб на отсутствие исполняемых файлов. У меня также была глобальная установка кармы все время.   -  person Riley Lark    schedule 03.08.2013
comment
Возможно, вместо этого используйте Chrome или phantomjs   -  person zs2020    schedule 03.08.2013


Ответы (1)


Сколько якорных вкладок у вас есть на странице?

Возможно, вы ссылаетесь не на тот якорь, который ожидали. Добавьте тег id к привязке и повторите проверку. Если это единственный тег привязки на странице, постарайтесь соответствовать тексту, а не ожидать, что он будет таким. IE:

expect((element('#anchor-tag-id').text()).toMatch(/Ask a question/);

Если вы используете хром, откройте инструменты разработки для вашего элемента, чтобы проверить фактические значения, это может очень помочь.

РЕДАКТИРОВАТЬ:

должно быть

expect(element('#anchor-tag-id').text()).toMatch(/Ask a question/);

извините добавил лишний ( в первом примере

person Ian Richards    schedule 14.08.2013
comment
Спасибо, что написали. К сожалению, в лучшем случае НЕ выбираются элементы привязки, а в худшем тесты просто не запускаются. Как вы думаете, ваше изменение повлияет на любую из этих проблем? - person Riley Lark; 14.08.2013
comment
Я обнаружил, что тесты не запускаются из-за опечатки в коде. вы видите только верхний баннер при добавлении теста для ожидаемого? - person Ian Richards; 15.08.2013