私は、いくつかの同様のテストがある状況でテストフィクスチャを使用するのが好きです。Pythonでは、Noseの下で、私は通常、これを他のモジュールによってインポートされた共通のテストモジュールとして実装します。たとえば、次のファイル構造を使用する場合があります。
db_fixtures.py:
import unittest
class BaseDB(unittest.TestCase):
def testFirstOperation(self):
self.db.query("Foo")
def testSecondOperation(self):
self.db.query("Blah")
database_tests.py:
import db_fixtures
class SQliteTest(db_fixtures.BaseDB):
def setUp(self):
self.db = createSqliteconnection()
class MySQLTest(db_fixtures.BaseDB):
def setUp(self):
self.db = createMySQLconnection()
これにより、MySQLとSQliteの両方でBaseDBで定義されたすべてのテストが実行されます。Noseによって実行されないようにdb_fixtures.pyに名前を付けたことに注意してください。