私は複数のシナリオを実行しており、実行されたシナリオに基づいてテストが実行された後に実行する特定の手順を実行できるような動的シナリオディスパッチャを組み込みたいと考えています。私がPHPUnitを使用していた時、私はTestCaseクラスをサブクラス化し、独自のセットアップとティアダウンメソッドを追加することができました。私がしてきたことは、シナリオの終わりにシナリオの終了時に余分な「Then」ステップを追加して、シナリオがすべてをクリーンアップした後に実行されるようにすることです。環境設定ファイルにあるafter_scenarioフックを使用することができないため、シナリオ固有の設定変更が必要です。同様のものを実装する方法に関するアイデア?Python Behaveの動的シナリオディスパッチャ
0
A
答えて
0
after_scenario
は、両方のシナリオを機能に渡します。その後、シナリオ名またはそのタグのいずれかにディスパッチできます。 before_allで
:例えば、タグで、あなたはあなたのアイデアを私は何をやってきたを与える可能性がある
def after_scenario(context, scenario):
if 'clean_up' in scenario.tags:
...
elif 'clean_down' in scenario.tags:
...
0
として
リスナー後@clean_up
Scenario: Something
...
そして、あなたとしてあなたのシナリオを定義することができますコンテキスト内でリストを指定してください(例:context.teardown_items = [])。様々なシナリオのさまざまな段階で次に
は私がそのリストに指定されたスーパーユーザとクリーンアップのすべてとしてログインafter_allに続いて(アカウント、受注または何でも)そのリストに
を追加します。
あなたのために働くようなものがありますか?
関連する問題
- 1. ** Python Selenium Behave **次のステップに進むと、アラートボックスが自動的に終了します
- 2. Python-BehaveとSeleniumのページオブジェクトモデルを組み合せる方法
- 3. python-behaveでcontext.execute_stepsに可変引数を渡す方法
- 4. Python Behave 'Context'オブジェクトには属性 'find_element'がありません
- 5. Behave-Pythonでレポートを生成するには?
- 6. Behaveのenvironment.pyにカスタムメソッドを追加
- 7. Pythonの動的プロット
- 8. Pythonの動的メソッド
- 9. Pythonの動的プロセス
- 10. Pythonの:動的ゲームボード
- 11. Python動的オブジェクトクエリ
- 12. Python動的プログラミング
- 13. Python動的コマンドラインパラメータ
- 14. Python GridInQuestII動的ライブラリ
- 15. Python - tkinter - 動的チェックボックス
- 16. Behave Pythonを使用してJunit出力レポートを生成するには
- 17. フィーチャファイルを実行中python behave - Pyhcharm - フィーチャが見つかりません
- 18. Pythonのトップダウン動的プログラミング
- 19. は動的にPythonの
- 20. Pythonの動的フレームサイズReportlab
- 21. Python Flaskの動的画像
- 22. Pythonの動的プロパティとmypy
- 23. 動的Forループin Python
- 24. Python動的チェックボックス依頼フォーム
- 25. PythonとPeewee - 動的where-clause
- 26. python code自動的にラズベリーパイ
- 27. Djangoプロジェクトで 'Manage.py behave'コマンドとして認識されない
- 28. 動的Python ModelChoiceFieldが動作しない
- 29. Pythonのsqlalchemyの動的関係
- 30. Pythonのunittestのと動的に作成
これは私が当初考えていたものですが、私は引き裂き方法のバリエーションが多すぎます。それをよりスケーラブルにするには? – nnja
コンテキストにあるものを解体しようとしている場合は、そのコンテキストに存在するものが存在するかどうかを確認し、そこに必要なクリーンアップを実行できます。たとえば、 'hasattr(context、 'thing_you_want_cleaned_up')'をチェックしてください。 – Elliot
私が考えていたことは、さまざまなシナリオで特定のティアダウンメソッドを実行することです。基本的には、あなたが質問に投稿したコードと同じですが、私はそれをスケールしたいと思います(例えば30種類のティアダウン方法については、30種類のタグが必要で、after_scenario関数は少なくとも30行になるでしょうか? ) – nnja