PythonUnitTestResultParser
public class PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
Python の unittest フレームワークで実行されたテストの出力を解釈し、一連のITestInvocationListener
の呼び出しに変換します。これらのテストからの出力は、次の EBNF 文法に従います。
TestReport ::= TestResult* 行 TimeMetric [FailMessage*] ステータス。 TestResult ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line.シングルステータス ::= \u201cok\u201d | \u201cエラー\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d.ステータス ::= \u201cOK\u201d | \u201cFAILED (errors=\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 つのテストを実行
OK
出力例 (失敗) test_size (test_rangelib.RangeSetTest) ... ERROR
================================================== ==================== エラー: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ トレースバック (最新の呼び出し last): ファイル "test_rangelib.py"、129 行目、test_rangelib で 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) ... わかりました testOkWithDocString (foo.testFoo) foo バー ... わかりました testSkipped (foo.testFoo) ... スキップされた「理由 foo」 testUnexpectedSuccess (foo.testFoo) ... 予想外の成功
================================================== ==================== エラー: testError (foo.testFoo) ---------------------- ------------------------------------------------ トレースバック (最新の呼び出し last): ファイル "foo.py"、11 行目、testError の self.assertEqual(2+2, 5/0) ZeroDivisionError: 整数除算またはゼロによるモジュロ
================================================== ==================== 失敗: testFail (foo.testFoo) ---------------------- ------------------------------------------------ トレースバック (最新の呼び出し last): ファイル "foo.py"、8 行目、testFail の self.assertEqual(2+2, 5) AssertionError: 4 != 5
================================================== ==================== 失敗: testFailWithDocString (foo.testFoo) foo バー -------------------- --------------------------------------------------トレースバック (最新の呼び出しが最後): ファイル "foo.py"、31 行目、testFailWithDocString self.assertEqual(2+2, 5) の AssertionError: 4 != 5
-------------------------------------------------- -------------------- 0.001 秒で 8 つのテストを実行
FAILED (失敗 = 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 unittest の出力を処理し、解析結果を報告します。 |
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 ()
キャンセルされました
public boolean isCancelled ()
戻り値 | |
---|---|
boolean |
processNewLines
public void processNewLines (String[] lines)
Python unittest の出力を処理し、解析結果を報告します。
このメソッドは、 MultiLineReceiver
の基本メソッドとは異なり、完全な出力で 1 回だけ呼び出す必要があります。
パラメーター | |
---|---|
lines | String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
パラメーター | |
---|---|
shouldFinalize | boolean |