PythonUnitTestResultParser
public class PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
解释使用 Python 的单元测试框架运行的测试的输出,并将其转换为对一系列ITestInvocationListener
的调用。这些测试的输出遵循以下 EBNF 语法:
TestReport ::= TestResult* 线路 TimeMetric [FailMessage*] 状态。 TestResult ::= 字符串 \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus。 FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d 行回溯行。 SingleStatus ::= \u201cok\u201d | “错误”。 TimeMetric ::= 在浮点数中测试整数。状态 ::= \u201cOK\u201d |失败(错误=int)。回溯 ::= 字符串+。
示例输出(通过): 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.范围设置测试)...好的
-------------------------------------------------- -------------------- 在 0.002 秒内运行 5 次测试
好的
示例输出(失败) test_size (test_rangelib.RangeSetTest) ... 错误
=================================================== ==================== 错误:test_size (test_rangelib.RangeSetTest) ---------------------- - - - - - - - - - - - - - - - - - - - - - - - - 追溯 (最近一次调用最后):文件“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 。 .. 失败 testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... 跳过 'reason foo' testUnexpectedSuccess (foo.testFoo) ... 意外成功
=================================================== ==================== 错误:testError (foo.testFoo) ---------------------- - - - - - - - - - - - - - - - - - - - - - - - - 追溯 (最近一次调用最后):文件“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)
创建一个新的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 |
公共方法
完成解析器
public void finalizeParser ()
取消
public boolean isCancelled ()
退货 | |
---|---|
boolean |
处理换行
public void processNewLines (String[] lines)
处理 Python 单元测试输出并报告解析结果。
与MultiLineReceiver
中的基本方法不同,此方法仅应调用一次并获得完整输出。
参数 | |
---|---|
lines | String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
参数 | |
---|---|
shouldFinalize | boolean |