2017-01-05 12 views
1

私はユニットテストにPytestを使用しています。環境に応じて異なるデータベース接続情報(開発とステージング、プロダクション)環境固有のアプリケーション設定をPytestに渡す方法

これは、通常の実行中にアプリケーション構成ファイルから読み込まれるものです。理想的な世界では、Pytestにコマンドラインオプションを指定するだけで、たとえば私のdevelopment.iniアプリケーション設定ファイルと私のテストコードは、その設定情報をテスト設定ファイルに複製する必要なしに、その設定情報をテスト中のアプリケーションコードに提供することができます。これは可能ですか? Pytestドキュメントから私を打つ

2つの可能性があります:

  1. custom command-line options

経由pytest.ini

  • addoptsとして渡すことで、それを置く(私が正しくドキュメントを理解していれば、上記の両方の方法でカスタムテストフィクスチャを使用する必要があります。間違っていれば修正してください)

    テストコードで使用する環境固有の設定情報を提供する従来の方法は何ですか?あるいは、異なるアプローチの賛否両論は何ですか?

  • 答えて

    1

    pytest.iniを使用してオプションを追加し、許可する方法は合理的なアプローチであり、実際には実装を共有します。カスタムテストフィクスチャを使用して実装することは意味があると私は同意します。

    Here is an example pytestプラグインを使用すると、pytestを実行するときに使用するDjango設定(Djangoで設定を指定できる他の方法に加えて)を指定できます。ご覧のように、設定ファイルはコマンドラインまたはpytest.iniに指定できます。この例は、あなたのアプローチにメリットがあるという証拠です。

    関連する問題