2016-04-20 5 views
0

Jenkinsを使用しているプロジェクトでは、Python Unit testsを実行したいと考えています。これらのテストには、組み込みデバイスとの相互作用が含まれています。結果はジェンキンスに報告しなければならない。Pythonユニットテストを実行して結果をJenkinsに出力

(のpython 2.7を使用して)私の現在の設定がルートディレクトリに以下の

| 
| helperModules 
|-- customlogger.py 
|-- settings.py 
|-- serial.py 
| tests 
|-- test_login 
|-- test_communicate_serial 
| start.py 

に見える私は、カスタムロガーのようないくつかの設定を初期化start.pyというファイルを、持っているし、実行する前に、いくつかの一般的な設定を読み込みますunittests。テスト自体はディレクトリテストにあり、テストは現在Pythonのunittestに基づいており、start.pyによって実行されます。

私はテストを実行し、ジェンキンスにとって読めるレポートを生成したいので、どのステップを取るべきかを知りたいです。 py.test、nose、またはxmlrunnerを使用しますか?鼻はおそらく維持されなくなるので、これは好ましくない。 py.testを使うべきですか?私の設定に適応し、start.pyを削除しようとする必要がありますか?私のstart.pyでセットアップしたロギングはデバッグに必要です。テストケース自体に入れて置き換える必要がある場合は、現在のデザインを変更しますが、このロギングは必須です。

これについてあなたの考えが何か不思議ですが、どのように進むでしょうか。

答えて

0

投稿の後、私はpytestを実験し始め、それを現在のstart.pyに統合しました。

import pytest 
    . 
    . 
pytest.main("--junitxml=\"report\test.xml\"") 

すべての設定が完了したら、このpytest.mainを引数とともに呼び出してxmlファイルを生成します。それは自動的に私の単体テストを発見して実行しました。

統合が簡単で、セットアップとの互換性を維持しているようです。この答えが他の人にも役立つことを願っています。

もう一つの利点は、私はまた、テストを実行する際に、ロギングの設定は行われませんもちろん、コマンドラインから

python -m pytest --junitxml=test.xml 

を実行できるということですが、便利な機能することができ実行するテスト。