Я использую robotframework для запуска набора функций Python в качестве тестовых случаев. Я пометил кучу тестовых случаев как настройку и кучу тестовых случаев как очистку. Я использую опцию -i в роботе для запуска различных тестовых случаев. Обычно я запускаю -i setup для настройки и -i cleanup для очистки набора тестов. Тем не менее, если тестовый пример в настройке не пройден, все тестовые примеры все еще выполняются. Я ищу возможность пометить кучу тестовых наборов как установку комплекта и разбор комплекта, и запустить разбор комплекта, если установка комплекта не удалась автоматически без выполнения каких-либо промежуточных тестов между ними. Я попробовал параметр «Настройка пакета с ключевыми словами», но с этим я перемещаю свои тестовые примеры в раздел ключевых слов и теряю функциональность тегов.
Оригинальный файл робота
*** Settings ***
Suite Setup
Suite Teardown
*** Test Cases ***
setup_1
[Tags] setup smoke 1
${result} ${result_str} = test.test.TestSetup.test_setup_1
Should Be Equal ${result} ${TRUE}
setup_2
[Tags] setup smoke 1
${result} ${result_str} = test.test.TestSetup.test_setup_2
Should Be Equal ${result} ${TRUE}
setup_3
[Tags] setup smoke 1
${result} ${result_str} = test.test.TestSetup.test_setup_3
Should Be Equal ${result} ${TRUE}
TestCase 1
[Tags] tc
${result} ${result_str} = test.test.my_func.test_func_1
Should Be Equal ${result} ${TRUE}
TestCase 2
[Tags] tc
${result} ${result_str} = test.test.my_func.test_func_2
Should Be Equal ${result} ${TRUE}
cleanup_1
[Tags] cleanup smoke 1
${result} ${result_str} = test.test.TestCleanup.test_cleanup_1
Should Be Equal ${result} ${TRUE}
cleanup_2
[Tags] cleanup smoke 1
${result} ${result_str} = test.test.TestCleanup.test_cleanup_2
Should Be Equal ${result} ${TRUE}
Файл робота с ключевыми словами
*** Settings ***
Suite Setup Run keywords
... setup_1
... AND setup_2
... AND setup_3
Suite Teardown Run keywords
... cleanup_1
... AND cleanup_2
*** Keywords ***
setup_1
[Tags] setup smoke 1
${result} ${result_str} = test.test.TestSetup.test_setup_1
Should Be Equal ${result} ${TRUE}
setup_2
[Tags] setup smoke 1
${result} ${result_str} = test.test.TestSetup.test_setup_2
Should Be Equal ${result} ${TRUE}
setup_3
[Tags] setup smoke 1
${result} ${result_str} = test.test.TestSetup.test_setup_3
Should Be Equal ${result} ${TRUE}
cleanup_1
[Tags] cleanup smoke 1
${result} ${result_str} = test.test.TestCleanup.test_cleanup_1
Should Be Equal ${result} ${TRUE}
cleanup_2
[Tags] cleanup smoke 1
${result} ${result_str} = test.test.TestCleanup.test_cleanup_2
Should Be Equal ${result} ${TRUE}
*** Test Cases ***
TestCase 1
[Tags] tc
${result} ${result_str} = test.test.my_func.test_func_1
Should Be Equal ${result} ${TRUE}
TestCase 2
[Tags] tc
${result} ${result_str} = test.test.my_func.test_func_2
Should Be Equal ${result} ${TRUE}
Есть ли способ пометить тесты, помеченные при настройке, как Suite Setup, и пометить тесты, которые помечены при очистке, как Suite Teardown и при этом иметь возможность запускать отдельные тесты при настройке и демонтаже?