PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Object
   ↳ com.android.ddmlib.MultiLineReceiver
     ↳ com.android.tradefed.testtype.PythonUnitTestResultParser


Python の単体テスト フレームワークで実行されたテストの出力を解釈し、呼び出しに変換します。 一連の ITestInvocationListener に対して設定されます。これらのテストの出力は、この EBNF に従う 文法:

TestReport ::= TestResult* Line TimeMetric [FailMessage*] Status。TestResult ::= 文字列 \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d シングル ステータス。FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d 行トレースバック 行。単一ステータス ::= \u201cok\u201d |\u201c エラー\u201d。TimeMetric ::= \u201cRan\u201d 整数は浮動小数点数\u201ds\u201d でテストされます。ステータス ::= \u201cOK\u201d |\u201cFAILED(errors=\u201d int \u201c)\u201d。トレースバック ::= string+

出力例(合格): 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) ---------------------------------------------------------------------- トレースバック(最新 call last): ファイル "test_rangelib.py"、129 行目、test_rangelib で ValueError() ValueError が発生する ---------------------------------------------------------------------- 0.001 秒で 1 テストを実行 失敗(errors=1)

複数のエッジケース(失敗)を含む出力例: testError (foo.testFoo) ... ERROR testExpectFailure (foo.testFoo) ... 想定される失敗 testFail(foo.testFoo) ... 失敗 testFailWithDocString (foo.testFoo) foo bar ... 失敗 testOk (foo.testFoo) ... OK testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... skippable 'reason foo」testUnexpectedSuccess(foo.testFoo)... 予期しない成功

======================================================================= エラー: testError (foo.testFoo) ---------------------------------------------------------------------- トレースバック (直近の呼び出しが最後): ファイル "foo.py"、11 行目、testError self.assertEqual(2+2, 5/0) ZeroDivisionError: ゼロでの整数の除算または剰余

====================================================================== 不合格: testFail: (foo.testFoo) ---------------------------------------------------------------------- トレースバック (直近の呼び出しが最後):ファイル「foo.py」、testFail の 8 行目、self.assertEqual(2+2, 5) AssertionError: 4 != 5

エラー: testFailWithDocString(foo.testFoo)foo bar ---------------------------------------------------------------------- トレースバック(最新 call last): ファイル「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)

指定された ITestInvocationListener に報告する新しい PythonUnitTestResultParser を作成します。

PythonUnitTestResultParser( listeners, String runName)

指定された ITestInvocationListener をレポートする新しい PythonUnitTestResultParser を作成します。

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

指定した包含フィルタと除外フィルタを使用して、指定した ITestInvocationListener をレポートする新しい PythonUnitTestResultParser を作成します。

パブリック メソッド

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

パブリック メソッド

finalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

戻り値
boolean

processNewLines

public void processNewLines (String[] lines)

Python 単体テストの出力を処理し、解析結果を報告します。

このメソッドは、次の基本メソッドとは異なり、完全な出力で 1 回だけ呼び出す必要があります。 MultiLineReceiver

パラメータ
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

パラメータ
shouldFinalize boolean