Мне нравится использовать Lettuce для определения тестовых случаев. Во многих случаях сценарии Lettuce легко написать таким образом, чтобы их можно было запускать либо атомарно, либо как часть других сценариев в функции. Однако я считаю, что Lettuce также является полезным инструментом для анализа и реализации более сложных интеграционных тестов. В этих случаях имеет смысл разбить тесты на сценарии, но определить зависимость от предыдущего сценария. Таким образом, я могу запустить сценарий, не определяя явно, какие другие сценарии необходимо запустить. Это также проясняет зависимость в определении сценария. Это может выглядеть примерно так:
Scenario: Really long scenario
Given some condition
Given another condition
Then something
...
Scenario: A dependent scenario
Given the scenario "Really long scenario" has been run
Given new condition
Then some stuff
...
Тогда я мог бы сделать что-то вроде:
@step('Given the scenario "([^"]*)" has been run')
def check_scenario(step, sentence):
scenario = get_scenario(sentence) # This what I don't know how to do
if not scenario.ran:
scenario.run()
Как вы справляетесь с этой ситуацией? Есть ли какие-то ошибки, которые мне не хватает при таком подходе? Беглый просмотр документации по API и исходного кода показал, что не существует простого способа получить сценарий по его строке.