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 SingleStatus。FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d 线路回溯 直线。SingleStatus ::= \u201cok\u201d |\u201cERROR\u201d。TimeMetric ::= \u201cRan\u201d 整数 \u201ctests in\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) ... 确定 test_to_string_raw (test_rangelib.RangeSetTest) ... ok test_union (test_rangelib.RangeSetTest) ... 好的
---------------------------------------------------------------------- 在 0.002 秒内进行了 5 次测试
确定
示例输出(失败)test_size (test_rangelib.RangeSetTest) ... ERROR
===================================================================== 错误:test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- 回溯(最新 调用最后):test_rangelib 中的第 129 行文件“test_rangelib.py”引发 ValueError() ValueError ---------------------------------------------------------------------- 在 0.001 秒内进行了 1 次测试 已失败(错误 1 个)
包含几种极端情况(失败)的示例输出:testError (foo.testFoo) ... ERROR test 预期 Failure (foo.testFoo) ... 预期失败 testFail (foo.testFoo) ... 失败 testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... Skip 'reason foo'testUnexpectedSuccess (foo.testFoo) ... 意外成功
===================================================================== 错误:testError (foo.testFoo) ---------------------------------------------------------------------- 回溯 (最近一次调用的最后一次):testError self.assertEqual(2+2, 5/0) 中的第 11 行文件“foo.py” ZeroDivisionError:整数除法或除以零
===================================================================== FAIL:testFail (foo.testFoo) ---------------------------------------------------------------------- 回溯 (最近一次调用的最后一项):testFail self.assertEqual(2+2, 5) 中的第 8 行文件“foo.py” AssertionError:4 != 5
==================================================================== 失败: testFailWithDocString (foo.testFoo) foo 栏 ---------------------------------------------------------------------- 回溯(最新 调用最后):testFailWithDocString self.assertEqual(2+2, 5) 中的第 31 行文件“foo.py” AssertionError:4 != 5
---------------------------------------------------------------------- 在 0.001 秒内进行了 8 次测试
失败(失败数 = 2,错误数 = 1,跳过 1,预计失败数 = 1,意外成功数 1)
TODO:考虑重构整个类,现在处理起来很混乱。
摘要
公共构造函数 | |
---|---|
PythonUnitTestResultParser(ITestInvocationListener listener, String runName)
创建一个新的 |
|
PythonUnitTestResultParser(
创建一个新的 |
|
PythonUnitTestResultParser(
创建新的 |
公共方法 | |
---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
处理 Python 单元测试输出并报告解析后的结果。 |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
公共构造函数
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
创建一个新的 PythonUnitTestResultParser
,用于向给定的 ITestInvocationListener
报告。
参数 | |
---|---|
listener |
ITestInvocationListener |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
创建一个新的 PythonUnitTestResultParser
,用于向给定的 ITestInvocationListener
报告。
参数 | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
创建新的 PythonUnitTestResultParser
,用于向指定 ITestInvocationListener
生成报告,并指定包含和排除过滤条件。
参数 | |
---|---|
listeners |
|
runName |
String |
includeFilters |
|
excludeFilters |
|
公共方法
finalizeParser
public void finalizeParser ()
已取消
public boolean isCancelled ()
返回 | |
---|---|
boolean |
processNewLines
public void processNewLines (String[] lines)
处理 Python 单元测试输出并报告解析后的结果。
此方法与完整输出中的基本方法不同,只应调用一次。
MultiLineReceiver
。
参数 | |
---|---|
lines |
String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
参数 | |
---|---|
shouldFinalize |
boolean |