PythonUnitTestResultParser
public class PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.オブジェクト | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
Python の Unittest フレームワークで実行されたテストの出力を解釈し、それを一連のITestInvocationListener
の呼び出しに変換します。これらのテストの出力は、次の EBNF 文法に従います。
TestReport ::= TestResult* 行 TimeMetric [FailMessage*] ステータス。 TestResult ::= 文字列 \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d 単一ステータス。 FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d 行トレースバック行。シングルステータス ::= \u201cok\u201d | \u201cエラー\u201d。 TimeMetric ::= \u201cRan\u201d 整数 \u201ctests\u201d float \u201ds\u201d。ステータス ::= \u201cOK\u201d | \u201c失敗(エラー=\u201d int \u201c)\u201d。トレースバック ::= 文字列+。
出力例 (合格): test_size (test_rangelib.RangeSetTest) ... ok test_str (test_rangelib.RangeSetTest) ... ok test_subtract (test_rangelib.RangeSetTest) ... ok test_to_string_raw (test_rangelib.RangeSetTest) ... ok test_union (test_rangelib. RangeSetTest) ... OK
-------------------------------------------------- -------------------- 0.002 秒で 5 つのテストを実行
わかりました
出力例 (失敗) test_size (test_rangelib.RangeSetTest) ... エラー
================================================= ==================== エラー: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ トレースバック (最新の呼び出し 最後): ファイル「test_rangelib.py」、test_rangelib の 129 行目 raise ValueError() ValueError ------------------------- --------------------------------------- 0.001 秒で 1 つのテストを実行しました 失敗しました(エラー=1)
いくつかのエッジ ケース (失敗) を含む出力例: testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... 予想される失敗 testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar 。 .. FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... 'reason foo' をスキップしました testUnexpectedSuccess (foo.testFoo) ... 予期せぬ成功
================================================= ==================== エラー: testError (foo.testFoo) ---------------------- ------------------------------------------------ トレースバック (最新の呼び出し last): ファイル "foo.py"、11 行目、testError self.assertEqual(2+2, 5/0) ZeroDivisionError: 整数の除算またはゼロによるモジュロ
================================================= ==================== 失敗: testFail (foo.testFoo) ---------------------- ------------------------------------------------ トレースバック (最新の呼び出し 最後): ファイル "foo.py"、8 行目、testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
================================================= ==================== 失敗: testFailWithDocString (foo.testFoo) foo bar -------------------- --------------------------------------------------トレースバック (最後の呼び出し): ファイル "foo.py"、31 行目、testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
-------------------------------------------------- -------------------- 0.001 秒で 8 つのテストを実行
失敗 (失敗 = 2、エラー = 1、スキップ = 1、予期された失敗 = 1、予期しない成功 = 1)
TODO: クラス全体をリファクタリングすることを検討してください。現時点では処理が非常に面倒です。
まとめ
パブリックコンストラクター | |
---|---|
PythonUnitTestResultParser ( ITestInvocationListener listener, String runName) 指定された | |
PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) 指定された | |
PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) 指定された包含フィルターと除外フィルターを使用して、指定された |
パブリックメソッド | |
---|---|
void | finalizeParser () |
boolean | isCancelled () |
void | processNewLines (String[] lines) Python 単体テストの出力を処理し、解析された結果をレポートします。 |
void | setFinalizeWhenParsing (boolean shouldFinalize) |
パブリックコンストラクター
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
指定されたITestInvocationListener
に報告する新しいPythonUnitTestResultParser
を作成します。
パラメーター | |
---|---|
listener | ITestInvocationListener |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
指定されたITestInvocationListener
に報告する新しいPythonUnitTestResultParser
を作成します。
パラメーター | |
---|---|
listeners | |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
指定された包含フィルターと除外フィルターを使用して、指定されたITestInvocationListener
に報告する新しいPythonUnitTestResultParser
を作成します。
パラメーター | |
---|---|
listeners | |
runName | String |
includeFilters | |
excludeFilters |
パブリックメソッド
ファイナライズパーサー
public void finalizeParser ()
キャンセルされました
public boolean isCancelled ()
戻り値 | |
---|---|
boolean |
プロセス改行
public void processNewLines (String[] lines)
Python 単体テストの出力を処理し、解析された結果をレポートします。
MultiLineReceiver
の基本メソッドとは異なり、このメソッドは完全な出力で 1 回だけ呼び出す必要があります。
パラメーター | |
---|---|
lines | String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
パラメーター | |
---|---|
shouldFinalize | boolean |