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*] 状态。 TestResult ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d 单一状态。 FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d 线回溯线。单一状态 ::= \u201cok\u201d | \u201c错误\u201d。 TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d。状态 ::= \u201cOK\u201d | \u201cFAILED(错误=\u201d int \u201c)\u201d。回溯 ::= 字符串+。
示例输出(通过): RangeSetTest) ... 好的
---------------------------------------------- ------------------ 在 0.002 秒内运行 5 次测试
好的
示例输出(失败) test_size (test_rangelib.RangeSetTest) ... ERROR
================================================ ==================== 错误:test_size(test_rangelib.RangeSetTest)------------------------ - - - - - - - - - - - - - - - - - - - - - - - - 追溯 (最近一次通话最后一次):文件“test_rangelib.py”,第 129 行,在 test_rangelib 中 raise 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) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... 跳过 'reason foo' testUnexpectedSuccess (foo.testFoo) ... 意外成功
================================================ ==================== 错误:testError (foo.testFoo) ---------------------- - - - - - - - - - - - - - - - - - - - - - - - - 追溯 (最近调用 last):文件“foo.py”,第 11 行,在 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 ( 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 |