2016-08-28 5 views
-4

私は現在、さまざまな部品のランタイムを記録することによって、私が継続的に性能テストを行うPythonアプリケーションを開発しています。開発とリリースPythonコード

多くのコードはテスト環境にのみ関連しており、実際のアプリケーションには存在しません。これらは機能に分かれており、現時点ではテスト時にこれらの呼び出しをコメントアウトします。これは、どのコールがテストのみのコンポーネントを参照しているかを覚えておく必要があります(それらはかなりインターリーブされているため、機能をグループ化できません)。

私はこれまでより良い解決策があるのか​​疑問に思っていましたが、私が今まで持っていた唯一のアイデアは、 'モード'ブール値の作成とIf文の挿入です。私はそれが私が素朴であるより標準化されたテスト方法があるかもしれないことを望んでいました。

私はPythonには新しいので、私はいくつかの単純な解決策を見落としているかもしれません。 ありがとうございます

+0

分けたいパーツの一般的なコードサンプルを提供してください。私の頭の中にあるオプションの1つは、これらの部分を別々の機能で移動することです。カスタムのデコレータで装飾されています。 '@ testing_environment_only'です。しかし、コードの部分は、テストコードであれば、生産コードと一緒に存在することは理にかなっていません。もう少し詳しく説明してください。 –

+0

すべてのテストコードは、現在、別々の機能にあります。 私はPythonの初心者だと言わざるを得ないので、簡単な提案を歓迎しても、私はデコレータの使用を認識していなかったので、これを調べます。 – user2071737

+1

これを処理する正しい方法は、別々のパッケージでテストを行うことです。必要に応じて、これらのテストでは、テストしている他のコードをモックできます。いくつかのコードサンプルを提供すれば、おそらくより貴重なフィードバックを得ることができます。 –

答えて

0

標準ライブラリのdevelopment-sectionのようなライブラリがあります。このようなツールをまだ使用していない場合は、テストを開始する必要があります。 (特にunittest)。

通常のPythonはTrueから__debug__セット(docs on assertを参照)で、デバッグモードでプログラムを実行します - あなたは、コマンドラインを設定することにより、デバッグモードをオフにすることができます(docsを参照)最適化のための-Oまたは-OOを切り替えます。

私はデバッグ&リリースモードを切り替えるとき、あなたのコードのいくつかの部分をコメントアウトしている場合、私はあなたが間違っをやっているだと思うでしょうねPython Wiki

0

に特異的にアサーションを使用してについての何かがあります。表示されるように、logging libraryの例を見てください。そのライブラリでは、単一のパラメータを変更することによってのみ使用するログレベルを指定できます。

スクリプトが実行されるモード(デバッグ、リリース、...)を制御する1つ以上の変数を持つことによって、デバッグコードの特定の部分にコメントすることを避けてください。 builtin ones Pythonが既に提供しているものを使用することもできます

関連する問題