誰もがお気に入りの Python テスト フレームワークである Pytest では、フィクスチャは、テストが開始される前に何かを配置し、終了後にクリーンアップする再利用可能なコードです。たとえば、一時ファイルやフォルダー、環境のセットアップ、Web サーバーの起動などです。この投稿では、クリーンアップされるテスト データベース (空または既知の状態) を作成する Pytest フィクスチャの作成方法を見ていきます。 、各テストを完全にクリーンなデータベース上で実行できるようになります.
目標 Psycopg 3 を使用して Pytest フィクスチャを作成し、テスト データベースを準備およびクリーンアップします。空のデータベースがテストに役立つことはほとんどないため、必要に応じて Yoyo 移行 (この記事の執筆時点では Web サイトがダウンしているため、archive.org スナップショットに移動) を適用してデータベースを埋めます。 したがって、このブログ投稿で作成された test_db という名前の Pytest フィクスチャの要件は次のとおりです:テスト DB に接続された通常の Psycopg Connection インスタンスを受け取ります。テストは、単純な Psycopg の一般的な使用法と同様に、必要なことを何でも実行できます。例:
幻想的な Yoyo のような移行ライブラリを使用する場合、移行スクリプトはおそらく migrations/:
にあります
構成
これらの値は環境変数から設定することも、状況に応じて設定することもできます。
リーリー移行フィクスチャの作成
私たちの場合は、
リーリーすべてのテスト データベースに移行を適用する場合、test_db フィクスチャにヨーヨー フィクスチャが必要です:
一部のテストのみに移行を適用するには、ヨーヨーを個別に必要とします:
リーリー
テストにクリーンなデータベースを提供する独自のフィクスチャを構築することは、私にとって Pytest と Postgres の両方をより深く掘り下げることができる貴重な経験でした。この記事が独自のデータベース テスト スイートに役立つことを願っています。お気軽にコメント欄に質問を残していただき、コーディングを楽しんでください!
以上がPytest と PostgreSQL: すべてのテストに使用できる最新のデータベースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。