Python のunittestモジュールを使用して記述された単体テストのセットがあります。彼らは setUpModule() 関数を使用して、テスト (一部の HTTP セッションを含む) を実行するために必要な共有の「もの」をグローバル変数にロードしています。
でテストを実行するとunittest
、正常に実行されます。py.test
彼らは失敗しています。
少しパッチを当てて、古いpytestフィクスチャ関数 (たまたまunittestと同じ名前ではない) を使用して実行できるようにしました。それは機能しましたが、複数のスレッドで実行されていない場合のみでした。これは私が使用したい機能です。
私の場合、各クラス内に 10 個のテストを持つ 20 個のクラス (unittest.TestCase) があるため、ドキュメントの例は役に立ちません。明らかに、各テストに新しいパラメーターを追加したくありません。
これまでは、クラスの setUp() メソッドを使用して共有ディクショナリを自己内にロードし、そこから各テスト内で使用していました。
#!/usr/bin/env python
# conftest.py
@pytest.fixture(scope="session")
def manager():
return { "a": "b"}
そして今、テスト:
#!/usr/bin/env python
# tests.py
class VersionTests(unittest.TestCase):
def setUp(self):
self.manager = manager
def test_create_version(self):
# do something with self.manager
pass
複数のスレッドで機能し、フィクスチャを 1 回呼び出すソリューションが必要であることを覚えておいてください。