Есть ли способ настроить Robot Framework, чтобы выполнение не останавливалось из-за сбоя
Мне известны слова "Выполнить ключевое слово" и "Продолжить при ошибке" / "Выполнить ключевое слово" и "Игнорировать ошибку / Выполнить ключевое слово" и "Вернуть статус". Встроенные ключевые слова, но у меня есть очень широкий набор тестовых случаев, которые не следует останавливать по какой-либо причине в конкретном сценарии, и я Мне было интересно, есть ли возможность не останавливать выполнение при сбое по умолчанию, без необходимости управлять им через эти ключевые слова и добавлять не связанный с бизнесом синтаксис в ключевые слова моего верхнего уровня.
2 ответа
Вообще говоря, робот просто не предназначен для работы так, как вы хотите. Он предназначен для выхода из теста в случае сбоя ключевого слова, если только вы явно не запустите это ключевое слово с одним из специальных ключевых слов (например, запустите ключевое слово и продолжить при ошибке).
В некоторых очень ограниченных случаях вы можете получить такое поведение, используя шаблон, который вызывает ключевое слово run и продолжает неудачу для каждого шага теста. Этот метод будет работать только в том случае, если ваш тестовый набор состоит строго из ключевых слов и не пытается сохранять результаты ключевых слов в переменных.
Например, рассмотрим этот тест:
*** Test cases ***
Example
log step one
log step two
fail something went wrong
fail something else went wrong
log last step
Если вы запустите вышеуказанный тест, он остановится при первом сбое. Однако, добавив тестовый шаблон, который использует ключевое слово run и продолжит работу в случае сбоя, все шаги будут выполнены, прежде чем перейти к следующему тесту:
*** Test cases ***
Example
[Template] Run keyword and continue on failure
log step one
log step two
fail something went wrong
fail something else went wrong
log last step
Вот как выглядит отчет с вышеуказанным тестом:
Хотя это кажется немного нелогичным, что вам следует продолжить, если вы столкнулись с ошибочной ситуацией, учитывая, что вы больше не можете контролировать приложение. Это само по себе должно быть предотвращено. Тем не менее, что сказал.
Учитывая, что вы уже знакомы с семейством ключевых слов Run и continue, больше нечего предложить и ответить на вопрос утвердительно: Нет.
Единственный подход - заключить ключевые слова в ключевые слова "Выполнить и продолжить".