Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Object
com.android.ddmlib.MultiLineReceiver
com.android.tradefed.testtype.PythonUnitTestResultParser


Phiên dịch đầu ra của các bài kiểm tra chạy bằng khung công tác độc nhất của Python và chuyển nó thành các lệnh gọi trên một loạt các ITestInvocationListener . Đầu ra từ các bài kiểm tra này tuân theo ngữ pháp EBNF sau:

TestReport :: = TestResult * Trạng thái Line TimeMetric [FailMessage *]. TestResult :: = string “(“ string ”)” “…” SingleStatus. FailMessage :: = EqLine “ERROR:” string “(“ string ”)” Dòng Traceback Line. SingleStatus :: = “ok” | "LỖI". Số nguyên TimeMetric :: = "Ran" "kiểm tra trong" float "s". Trạng thái :: = “OK” | “FAILED (error =” int “)”. Traceback :: = string +.

Ví dụ đầu ra (vượt qua): test_size (test_rangelib.RangeSetTest) ... ok test_str (test_rangelib.RangeSetTest) ... ok test_subtract (test_rangelib.RangeSetTest) ... ok test_to_string_raw (test_rangelib.RangeSeteluest) ... ok. RangeSetTest) ... được rồi

-------------------------------------------------- -------------------- Chạy 5 bài kiểm tra trong 0,002 giây

ĐƯỢC RỒI

Ví dụ đầu ra (không thành công) test_size (test_rangelib.RangeSetTest) ... ERROR

================================================== ==================== LỖI: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Tìm lại ( lần gọi gần đây nhất cuối cùng): Tệp "test_rangelib.py", dòng 129, trong test_rangelib nâng lên ValueError () ValueError --------------------------- ------------------------------------------- Chạy 1 bài kiểm tra trong 0,001 giây THẤT BẠI (lỗi = 1)

Ví dụ đầu ra với một số trường hợp cạnh (không thành công): testError (foo.testFoo) ... ERROR testEpectFailure (foo.testFoo) ... dự kiến ​​thất bại testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) thanh foo. .. FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... bỏ qua 'reason foo' testUnepectSuccess (foo.testFoo) ... thành công ngoài mong đợi

================================================== ==================== LỖI: testError (foo.testFoo) ---------------------- ------------------------------------------------ Tìm lại ( lần gọi gần đây nhất cuối cùng): Tệp "foo.py", dòng 11, trong testError self.assertEqual (2 + 2, 5/0) ZeroDivisionError: chia số nguyên hoặc modulo bằng 0

================================================== ==================== THẤT BẠI: testFail (foo.testFoo) ---------------------- ------------------------------------------------ Tìm lại ( cuộc gọi gần đây nhất cuối cùng): Tệp "foo.py", dòng 8, trong testFail self.assertEqual (2 + 2, 5) AssertionError: 4! = 5

================================================== ==================== THẤT BẠI: thanh foo testFailWithDocString (foo.testFoo) -------------------- -------------------------------------------------- Traceback (lần gọi gần đây nhất): Tệp "foo.py", dòng 31, trong testFailWithDocString self.assertEqual (2 + 2, 5) AssertionError: 4! = 5

-------------------------------------------------- -------------------- Chạy 8 bài kiểm tra trong 0,001 giây

FAILED (thất bại = 2, lỗi = 1, bỏ qua = 1, thất bại dự kiến ​​= 1, thành công không mong đợi = 1)

VIỆC CẦN LÀM: Hãy xem xét việc cấu trúc lại toàn bộ lớp, việc xử lý hiện khá lộn xộn.

Bản tóm tắt

Các nhà xây dựng công cộng

PythonUnitTestResultParser ( ITestInvocationListener listener, String runName)

Tạo một PythonUnitTestResultParser mới báo cáo cho ITestInvocationListener cho.

PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName)

Tạo một PythonUnitTestResultParser mới báo cáo đến các ITestInvocationListener đã cho.

PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters)

Tạo một PythonUnitTestResultParser mới báo cáo đến các ITestInvocationListener đã cho, với các bộ lọc bao gồm và loại trừ được chỉ định.

Phương pháp công khai

void finalizeParser ()
boolean isCancelled ()
void processNewLines (String[] lines)

Xử lý đầu ra hấp dẫn nhất của Python và báo cáo kết quả được phân tích cú pháp.

void setFinalizeWhenParsing (boolean shouldFinalize)

Các nhà xây dựng công cộng

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

Tạo một PythonUnitTestResultParser mới báo cáo cho ITestInvocationListener cho.

Thông số
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Tạo một PythonUnitTestResultParser mới báo cáo đến các ITestInvocationListener đã cho.

Thông số
listeners

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName, 
                 includeFilters, 
                 excludeFilters)

Tạo một PythonUnitTestResultParser mới báo cáo đến các ITestInvocationListener đã cho, với các bộ lọc bao gồm và loại trừ được chỉ định.

Thông số
listeners

runName String

includeFilters

excludeFilters

Phương pháp công khai

finalizeParser

public void finalizeParser ()

bị hủy

public boolean isCancelled ()

Lợi nhuận
boolean

processNewLines

public void processNewLines (String[] lines)

Xử lý đầu ra hấp dẫn nhất của Python và báo cáo kết quả được phân tích cú pháp.

Phương thức này chỉ nên được gọi một lần với đầu ra đầy đủ, không giống như phương thức cơ sở trong MultiLineReceiver .

Thông số
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Thông số
shouldFinalize boolean