8

テスト結果を Python Unit Test 形式で出力するテスト スイートがあります: http://docs.python.org/library/unittest.html

このフォームを解析できる既存の Buildbot モジュール/プラグインはありますか?

例:

DigitalReadWrite_02                                         ... ok
DigitalReadWrite_03                                         ... ok
DigitalReadWrite_04                                         ... ok
PWMoutput_02  (PWM=128 50% LOW 49% HIGH)                    ... ok
PWMoutput_03  (PWM=128 50% LOW 49% HIGH)                    ... ok
PWMoutput_04  (PWM=128 50% LOW 49% HIGH)                    ... ok
--------------------------
Ran 6 tests in 1.652s

OK

カスタム パーサーを作成しましたが、基本的なケースしかありません。Python 単体テスト形式のすべてのフレーバーを包括的にする努力をする価値はありますか。

4

1 に答える 1

3

いいえ、パーサーを開発しても意味がありません。runner.pyモジュールのクラスから同等の情報を取得できます。

カスタム ロジック (python 2.7) でTextTestRunnerTextTestResultの両方のクラスを拡張することを検討してください。リストした出力はTextTestResultによって生成されます。

または、 TextTestResultのみを拡張し、クラス属性 TextTestRunner.resultclass を変更て、新しい拡張クラス名に設定することもできます。

TextTestResult から抽出して辞書のリストに入れることができるデータは、パーサーが抽出できるデータよりも大きいか、同等です。

unittest フレームワークは、その柔軟な設計により、このようなトリックを可能にします。これがお役に立てば幸いです。

[編集]

これまでの結果を (たとえば、github のオープン ソース コードとして) 公開することは、あなたの質問を見つけた人にとって非常に役立つ可能性があると思います!

とは言っても、基本的な正規表現の解析を超えて実際のパーサーを改善するのは簡単ではないでしょう。

それでもテキスト解析アプローチを追求したい場合は、カバー/サポートしたい「Python 単体テスト形式のすべてのフレーバー」を列挙して説明する必要があるかもしれません。そのような記述を文脈自由文法の形で表現できれば、言語の形として「それらの」ケースをカバーするパーサーを開発できるかもしれません。

注意してください: テキストの解析が単純な正規表現でカバーされておらず、不規則な (文脈依存の) 言語を解析しようとしている可能性がある場合 - ほとんどの場合、達成するのは非常に困難です。

于 2011-01-22T01:24:49.013 に答える