Python unit testing code which calls OS/Module level python functionsに関連する。私の単体テストでは、Pythonのシステムコールをオーバーロードして、モジュールの異なるパスを駆動するためのテストを取得します。この技術はMonkey Patch(関連する質問で)と呼ばれ、孤立したテストに使用されています。モジュールレベルの関数をオーバーライドするPythonユニットテスト
"Nose"のようにPythonテストを並列実行するとどうなるか心配です。 2つのテストが並行して実行され、どちらもos.path.existsメソッドを疑似したい場合はどうなりますか?
テストのコンテキストでシステムまたはモジュールの機能を選択的に無効にする方法はありますか?
それが最善の方法だ場合、私は知らないが、私はそれぞれの間に変更を復元後、設定するために、テストでこれをやっているとき、私は一般的にtry ... finally
を使用する例
fixture.py (say that is the module under test)
def my_func():
some_stuff
test_fixture.py (say this is my test case)
class MyTest(unittest.TestCase):
def test_mine(self):
fixture.my_func = my_new_func
fixture.execute_some_func_that_calls_my_func()
#What happens if another test is executing at the same time and accesses
#my_func I don't want it to start executing my_new_func?
ここにname_getterは何ですか? TestNameGetterクラスが存在するモジュールですか? –
はい、申し訳ありませんが、例として、私はhttp://stackoverflow.com/questions/14956825/python-unit-testing-code-which-calls-os-module-level-python-functionsで回答を使用していました。私の例をより明確に更新しましょう。 –
さて、同じname_getterモジュールをヒットする2つのテストが並行して実行されていて、両方とも異なるraw_input関数が必要な場合はどうなりますか?これはまだ機能しますか? –