2015-05-18 16 views
0

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

Для примера:

*** Test Cases *** 
|Log In 
|   |Perform Valid Login 
|Test A 
|   |Do A 
|Test B 
|   |Do B 

Мне нужно, чтобы остановить набор тестов Только если Вход выходит из строя. Есть ли какое-либо ключевое слово, которое я могу использовать, когда я определяю ключевое слово «Выполнить действительный вход», или это что-то, что нужно сделать из «Сюжетного удаления» (и если да, то как).

Если я запустил ключевое слово «Запустить ключевое слово, если тест завершился с ошибкой», он остановит набор тестов, если какой-либо тестовый пример завершится с ошибкой. Значение, если есть проблема с «Тестом А», он остановится и не продолжит «Тест B».

спасибо.

ответ

2

Вы можете вызвать встроенное ключевое слово Fatal Error, чтобы остановить выполнение. Из документации:

Останавливает выполнение всего теста.

Тестирование или пакет, в котором используется это ключевое слово, не выполняется с предоставленным сообщением , а последующие тесты терпят неудачу с помощью консервированного сообщения. Возможно, все же будут выполнены отрывки из-за ошибки .

Вы можете поместить это в тест-разборки, и вызывать его, если тест не пройден:

*** Test Cases *** 
| Log In 
| | [Teardown] | Run keyword if test failed 
| | ... | Fatal Error | Unable to log in 

Конечно, вы также можете позвонить Fatal Error прямо в ключевое слово, если вы хотите. Вместо Run keyword if test failed вы должны использовать обычный оператор Run keyword if и предоставить ему несколько тестов, которые могут определить, был ли вход успешно выполнен или нет.

В целом, испытания, зависящие от других испытаний, считаются плохим дизайном испытаний. Любой данный тест не должен зависеть от других. Например, эта настройка запретила бы разработчику запускать только «Тест B», поскольку «Тест B» полагается на «Вход в систему», который был запущен первым.

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

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

+0

Я думаю, что не было достаточно ясным. Fatal Error вызывает ручную остановку.Мне нужно остановить набор тестов, если тестовый случай не прошел во время теста. – PurpleBeni

+0

@PurpleBeni: Я не понимаю вашего комментария. Что такое «ручная остановка»? Вы пытались использовать «Fatal Error», чтобы узнать, что он делает? –

+0

Да, у меня есть. Он запускает тестовый пример, и когда дело доходит до этой строки кода, он останавливает тест. Мне нужно остановиться только в том случае, если в тестовом случае произошла ошибка, вызванная программой (а не ручная ошибка, которую я вставил как Fatal Error). – PurpleBeni

0

Кажется, что вы должны определить установку набора, которая выполняет вход в систему.

Таким образом, если сбой входа в систему - весь пакет выходит из строя.

В качестве альтернативы - Вы можете также определить Выполнить Valid Войти тест следующим образом:

Login Test 
    Perform Valid Login 
    [teardown] Run Keyword If Test Failed Fatal Error