2017-10-18 4 views
-1

私は最初にテスト構成を定義したプロジェクトを持っています。config.py ベーステストクラスにテストデータベースを設定しているので、私はそれを使用していません。config.py対基本テストクラスのフラスコテスト構成

だから私は次の二つの事実と困惑してる:

  1. 何度データベースとthis one

  2. 実際のテストは通常​​行われているように、テストの構成は、チュートリアルで説明されているconfig.py のためにそこにありますアプリケーションおよびデータベース がtestclassで定義されています(Flask-Testingの有無にかかわらず)。このテスト・セットアップは のために特別に作成されたテスト・データベースに関するいくつかのアドバイスがあります例えば、フラスコ、SQLAlchemyのためown test fixtures またはhere

を記載されているリンクの一部を参照してくださいconfig.py

からテストの設定を使用しませんテストは、testing-with-sqlalchemyから

などです。まず、データベースのURIを本番データベース以外のものに設定してください。第二に、それは

は、私は何のチュートリアルはあなたが、テストの設定を必要としない」 を言わないという事実による心配 クリーンなテストを保証するために、各テストの実行を使用してテーブルを作成してドロップする通常

をお勧めしますベーステストクラスのテスト設定 "。これは何か?

config.pyで、明示的なテスト設定はクラスで排他的ですか? また、2つを組み合わせることもありますか?

P.S. Hereは、テスト設定がないプロジェクト構成の一覧です。

答えて

0

t1; dr:通常は便宜上の問題です。テストモジュールの定義を優先する。

config.pyのテスト設定と明示的なテスト設定は、相互排他的なクラスですか?あるいは時には2つを組み合わせることもありますか?

これらは互いに排他的ではありません。あなたは、設定をテストモジュール(または)の両方で

  • config.py(または)で

    • 値置くことができます。

    Hereは、モチベーションのためにconfig.pyルートを使用した例です。


    ほとんどの場合、テスト設定の保存はプロジェクトによって異なります。

    クラス継承構造を持つconfig.pyには、独自のルールセットが付属しています。 SECRET_KEYなどの特定の値とデータベース接続文字列は、アプリケーションのセキュリティを確保するために展開段階で変更する必要があります。だから、このような状況(特に公開されているオープンソースプロジェクト)を扱うためには、通常、すべてのデフォルト値を持つconfig.py.defaultのようなファイルがあります。開発者/管理者はこれをconfig.pyにコピーし、要件ごとに値を追加することができます。このようなデフォルトの設定は、Flask docsでお勧めします。

    自動テスト(たとえば、継続的インテグレーション)が必要な状況では、このようなデフォルトの設定は使用できなくなります。モジュールにテスト設定を保存すると、便利な解決策が得られます。

  • +0

    詳細な回答ありがとうございます。私のテイクアウェイは、データベーステスト以外の目的で再利用可能なものが必要でない限り、テストでセットアップを使用することです。 –

    関連する問題