私は CherryPy アプリケーションを開発しており、自動テストを作成したいと考えています。私はノーズテストを使用することにしました。アプリケーションは sqlalchemy を db バックエンドとして使用するため、fixture パッケージを使用して固定データセットを提供する必要があります。また、私はウェブテストをしたいと思っています。すべてをまとめて設定する方法は次のとおりです。
init_model(test = False)
すべてのモデルが作成されるファイルにヘルパー関数があります。本番またはテスト (test == True または cherrypy.request.app.test == True の場合) データベースに接続し、呼び出しますcreate_all
次に、次のようなテストの基本クラスを作成しました。
class BaseTest(DataTestCase):
def __init__(self):
init_model(True)
application.test = True
self.app = TestApp(application)
self.fixture = SQLAlchemyFixture(env = models, engine = meta.engine, style = NamedDataStyle())
self.datasets = (
# all the datasets go here
)
そして今、BaseTest の子クラスを作成して呼び出してテストを行います。self.app.some_method()
Pythonでテストを行うのはこれが初めてで、これはすべて非常に複雑に思えます。上記のパッケージを作成者が意図したとおりに使用しているかどうか、および複雑すぎないかどうかを知りたいです。