私は現在、鼻を使っていくつかの機能テストを書いています。私がテストしているライブラリは、ディレクトリ構造を操作します。
再現可能な結果を得るために、テスト ディレクトリ構造のテンプレートを保存し、テストを実行する前にそのコピーを作成します (testssetup
関数内で行います)。これにより、テストの開始時に常に適切に定義された状態が得られます。
ここで、さらに 2 つの要件があります。
- テストが失敗した場合、問題を分析できるように、テストが実行されたディレクトリ構造が上書きまたは削除されないようにしたいと考えています。
- 複数のテストを並行して実行できるようにしたいと考えています。
これらの要件は両方とも、実行されるテストごとに異なる名前で新しいコピーを作成することで解決できます。このため、setup
関数で現在実行されているテストの名前にアクセスして、コピーに適切な名前を付けることができるようにしたいと考えています。これを達成する方法はありますか?
実例となるコード例:
def setup_func(test_name):
print "Setup of " + test_name
def teardown_func(test_name):
print "Teardown of " + test_name
@with_setup(setup_func, teardown_func)
def test_one():
pass
@with_setup(setup_func, teardown_func)
def test_two():
pass
期待される出力:
Setup of test_one
Teardown of test_one
Setup of test_two
Teardown of test_two
名前をパラメーターとして挿入するのが最も良い解決策ですが、他の提案も受け付けています。