2011-12-14 13 views
0

私はPythonを使ってテストしたいかなり複雑なシステムを持っています。私のテストコードは、既に書いたPythonモジュールを使ってシステムとやりとりします。しかし、テストフレームワークに関して、私が把握できなかったことがいくつかあります。私はまだ1つを選択していないが、明らかに私はunittestに向けられた感じがする。Pythonユニットテストの詳細

  1. テストにパラメータを渡す。テストするシステムのどのコンポーネントに応じて、テストコードのさまざまな部分に特定のIDを渡す必要があります。 unittestはこれを提供していますか?言い換えれば、今私は次のように実行するテストスクリプトを用意しています:./testscript.py 123 win 32テストフレームワークで同じパラメータを同じように渡すにはどうすればいいですか?

  2. unittestsetUp()tearDown()方法を提供するが、それらは前/後試験法と呼ばれます。 TestCaseのテストのバッテリー全体の前または後に呼び出される関数をどのように持つことができますか?

多分unittestは私が実際に使いたいものではありませんか?

+3

for#1これはhttp://stackoverflow.com/questions/1029891/python-unittest-is-there-a-way-to-pass-command-line-options-to-the-appになります完了 –

+0

ありがとうFC論理的に意味があります。私は実際にテストしているモジュールへのパラメータを実際に取得する唯一の方法はグローバルだと仮定しています。 –

+0

私は自分の答えを受け入れるか、それを受け入れられるように答えを出したいですか? –

答えて

1

#2については、setUpClass() and tearDownClass()がこのために設計されているようです。ドキュメントには、createExpensiveConnectionObject()への使用例も表示されます。

1

私はtoxを使用して、複数の設定にわたってテストを実行します。私のユニットテストの中には、オプションのモジュールがなければ特定のテストをスキップするものがあります。つまり、モジュール検出コードが動作することを確認する必要があります。 Toxにはコマンドライン引数を指定する簡単な方法がないため、最も簡単な解決策は環境変数を使用することでした。

F.C.のpython, unittest: is there a way to pass command line options to the appへのポインタは、追加の引数を使用することを決定した場合に適用されます。