2016-10-13 2 views
0

Один из моих тестов прерывается при запуске всего пакета, но он не сбой при запуске сам по себе.Почему мой тест прерывается с перерывами при запуске всего пакета?

Я создал очень основное хранилище с приложением ванили, которое воспроизводит проблему: https://github.com/juanazam/ember-cli-test-issue.

В принципе, я создал компонент с текстовым полем и кнопкой. Кнопка отключена, когда текст пуст.

Проблемы возникают, когда два теста используют помощник fillIn на входе.

Вот тестирование кода взяты из приложения ванили:

test('test 1', function(assert) { 
    visit('/'); 

    fillIn('input[type=text]', "Algo"); 

    andThen(function() { 
    assert.equal(currentRouteName(), "index"); 
    }); 
}); 

test('test 2', function(assert) { 
    visit('/'); 

    andThen(function() { 
    assert.ok(find('input[type=submit]').is(':disabled')); 
    }); 

    fillIn('input[type=text]', "Algo"); 

    andThen(function() { 
    assert.ok(!find('input[type=submit]').is(':disabled')); 
    }); 
}); 

Как вы можете видеть тест 1 заполняет только вход, но ничего не делать с ним. Второй тест проверяет, отключена ли кнопка.

Тест 2 с перерывами прерывается при запуске всего пакета. Если вы запускаете тестовые тесты ember, это не удастся, если вы перезагрузите вкладку браузера (перезапустите весь пакет без перезапуска серверного процесса), он пройдет. Такое же поведение происходит при нескольких прогонах (один запуск не выполняется, следующий преуспевает).

Я не создавал случай воспроизведения в twiddle, потому что тестовый бегун не ведет себя одинаково.

+0

Какую версию ember вы используете? – Keo

ответ

0

С вами приложение:

ember test всегда будет терпеть неудачу.

ember test --filter 'test 1' всегда будет проходить.

ember test --filter 'test 2' всегда будет пройти.

Если вы разделите свои 2 тестовые функции на разные приемочные испытания, то ember test всегда будет проходить.

0

Qunit в браузере сначала пытается выполнить сбойные тесты. (Я думаю, чтобы сократить время до тех пор, пока не будут выполнены самые интересные неудачные тесты.). С ember -s ваши тесты всегда выполняются по порядку, а тесты терпят неудачу (я думаю, что тест 2 завершился неудачно, потому что test1 уже заполнил ваш вход и он изначально не отключен, как ожидалось).

При перезагрузке qunit в браузере после первого неудачного теста сначала выполняется сбой test2 (и проходит).

Также посмотрите на https://dockyard.com/blog/2014/04/17/ember-object-self-troll. В вашем определении компонента может возникнуть проблема, приводящая к неожиданно заполненному вводу в test2.

 Смежные вопросы

  • Нет связанных вопросов^_^