レタスを使ってテスト ケースを定義するのが好きです。多くの場合、レタスのシナリオをアトミックに、またはフィーチャー内の他のシナリオの一部として実行できるように記述するのは簡単です。ただし、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 ドキュメントとソース コードをざっと見てみると、文字列でシナリオを取得する簡単な方法があるようには見えませんでした。