私はpy.testの周りに素敵なベースを構築しようとしています
一部のテストでは、機能するために特定のテスト データが必要です。
現在、関数の引数としてモック オブジェクトを指定し、ジェネレーターでセットアップを行うだけですが、これは明らかに望ましくありません。
以下は、今日の外観の例です。
def test_something(self, some_data):
# some_data is unused in the test
私はこのようなことをしたいと思います:
@uses_some_data
def test_something(self):
# The data is loaded when the test is run
私はこれを適切に行う方法を理解していませんが。
すべてのテストクラスでセットアップ/破棄するのではなく、セッション全体でデータを永続化したいため、クラスセットアップを使用できません。
私の最初のアイデアは、まだ funcarg を使用することでしたが、テストに funcarg を持たせる代わりに、デコレータに関数の funcarg を要求させ、基本的に醜さを隠しました。
これに関する問題は、funcarg を要求するために py.test オブジェクトが必要なことです。
そのようなオブジェクトを取得する方法はありますか、それともこれは間違ったアプローチですか?
収集されたテストのいずれもデータを必要としない場合、データをロードする必要がない場合は素晴らしいボーナスになります。これは、テストが実行されるかどうかに関係なく常に実行されるため、デコレータを使用することの欠点です。