Подтвердить что ты не робот

Как я могу перематывать нос только те тесты, которые не удались?

У меня есть некоторые тесты GUI Selenium Webdriver, которые запускаются при каждой регистрации в нашей среде сборки Trac/Bitten. По разным глупым причинам они являются хрупкими, и повторное выполнение неудавшегося теста всегда работает (если только это не так, и тогда у меня есть тест с ошибкой).

Как повторно запустить эти неудачные тесты? Тесты GUI занимают 10-15 минут для запуска, поэтому повторное использование всех из них - боль.

Вот шаг сборки:

<step id="guitest" description="Run gui tests">
    <sh:exec executable="gui_tests.sh" />
</step>

и gui_tests.sh

# Setup environment stuff deleted
nosetests python/*Tests.py -v

Мы работаем над тем, чтобы сделать тесты GUI более надежными, но я понимаю, что это жизнь с графическими интерфейсами.

4b9b3361

Ответ 1

Оказывается, это тривиально с носом. Сначала запустите команду и включите флаг --with-id.

# Environment stuff deleted
nosetests python/*Tests.py -v --with-id
nosetests python/*Tests.py -v --failed

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

Запуск --with-id снова сбрасывает отслеживание неудавшихся тестов и запускает все найденные тесты.

Я искал довольно много для этого, прежде чем я бродил в написании своего собственного плагина. Когда я изучал, как регистрировать мой подключаемый модуль, я нашел код, который оказался testid plugin, предоставленный носом, который обеспечивает функциональность выше, Sheesh. Я документирую это здесь, надеясь спасти кого-то еще некоторое время.

Конечно, теперь, когда я знаю об этом, он так явно нашел:

nosetests --help

Сначала я просмотрел документы, но не думал, что это будет так просто, поэтому я сделал это без энтузиазма.