PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
解释使用 Python 的 unittest 框架运行的测试的输出,并将其转换为对一系列 ITestInvocationListener
的调用。这些测试的输出遵循以下 EBNF 语法:
TestReport ::= TestResult* Line TimeMetric [FailMessage*] Status. TestResult ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line. SingleStatus ::= \u201cok\u201d | \u201cERROR\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. 状态 ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d。Traceback ::= 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) ... ERROR
====================================================================== ERROR: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_rangelib.py", line 129, in test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (errors=1)
包含多个边界情况(失败)的示例输出:testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... expected failure testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... skipped 'reason foo' testUnexpectedSuccess (foo.testFoo) ... unexpected success
====================================================================== ERROR: testError (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: integer division or modulo by zero
====================================================================== 失败: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(
创建一个向指定 |
|
PythonUnitTestResultParser(
创建一个新的 |
公共方法 | |
---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
处理 Python unittest 输出并报告解析结果。 |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
公共构造函数
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
创建一个向指定 ITestInvocationListener
报告的新 PythonUnitTestResultParser
。
参数 | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
创建一个新的 PythonUnitTestResultParser
,用于向指定的 ITestInvocationListener
报告,并使用指定的包含和排除过滤条件。
参数 | |
---|---|
listeners |
|
runName |
String |
includeFilters |
|
excludeFilters |
|
公共方法
finalizeParser
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
返回 | |
---|---|
boolean |
processNewLines
public void processNewLines (String[] lines)
处理 Python unittest 输出并报告解析结果。
与 MultiLineReceiver
中的基准方法不同,此方法应仅使用完整输出调用一次。
参数 | |
---|---|
lines |
String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
参数 | |
---|---|
shouldFinalize |
boolean |