تجزیه‌کننده‌ی نتایج ابزار دقیق

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

شیء جاوا
com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser


نتایج «protoStd output mode» مربوط به اجرای تست instrumentation از shell را تجزیه و تحلیل کرده و یک ITestRunListener را از نتایج مطلع می‌سازد.

دستور am instrument با گزینه "-m" وضعیت اجرای تست را به صورت تدریجی در قالب دودویی protobuf نمایش می‌دهد. پیام خروجی protobuf، InstrumentationData.Session است که دارای دو فیلد است: ۱) یک فیلد تکراری InstrumentationData.TestStatus ، ۲) InstrumentationData.SessionStatus . دستور am instrument قبل/بعد از هر اجرای تست، پیام وضعیت تست را نمایش می‌دهد. addOutput(byte, int, int) با یک آرگومان data که یک بایت سریالی شده از TestStatus (es) است، فراخوانی می‌شود. وقتی همه تست‌ها انجام شدند، دستور در نهایت SessionStatus نمایش می‌دهد.

برای تعریف کامل protobuf به آدرس https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto مراجعه کنید.

InstrumentationProtoResultParser یک ماشین وضعیت (state-machine) است و وضعیت‌ها در ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) تعریف می‌شوند. وضعیت با ERROR(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED InstrumentationProtoResultParserState.NOT_STARTED) شروع می‌شود. وقتی اولین وضعیت مورد آزمایشی را می‌بیند، به ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) می‌رود. اگر تمام تست‌ها انجام شده باشند، وضعیت به ERROR(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED) تغییر می‌کند، یا اگر با فراخوانی cancel() درخواست شود، به ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED) تغییر می‌کند.

هر بار که وضعیت جدیدی برای آزمون در دسترس قرار گیرد، به شنوندگان ثبت‌نام‌شده اطلاع داده خواهد شد.

خلاصه

سازندگان عمومی

InstrumentationProtoResultParser (String runName, Collection< ITestRunListener > listeners)

InstrumentationProtoResultParser را می‌سازد.

روش‌های عمومی

void addOutput (byte[] data, int offset, int length)

این متد هر بار که داده‌های جدیدی در دسترس قرار گیرد، فراخوانی می‌شود.

void cancel ()

درخواست لغو اجرای آزمایشی را دارد.

void flush ()

در پایان اجرای فرآیند فراخوانی می‌شود (مگر اینکه فرآیند لغو شده باشد).

void handleTestRunFailed (String errorMsg)

این متد زمانی فراخوانی می‌شود که دستور "am instrument" با یک استثنا از کار بیفتد.

boolean isCancelled ()

متد Cancel برای متوقف کردن اجرای دستور shell از راه دور.

سازندگان عمومی

تجزیه‌کننده‌ی نتایج ابزار دقیق

public InstrumentationProtoResultParser (String runName, 
                Collection<ITestRunListener> listeners)

InstrumentationProtoResultParser را می‌سازد.

پارامترها
runName String : نام اجرای آزمایشی که باید به ITestRunListener.testRunStarted ارائه شود

listeners Collection : همزمان با اجرای تست‌ها، از نتایج تست مطلع می‌شوید

روش‌های عمومی

خروجی اضافه

public void addOutput (byte[] data, 
                int offset, 
                int length)

این متد هر بار که داده‌های جدیدی در دسترس قرار گیرد، فراخوانی می‌شود.

پارامترها
data byte : یک داده سریالی شده از پیام InstrumentationData.Session . اگر data یک تکه ناقص باشند، به یک بافر داخلی اضافه می‌شوند و در فراخوانی بعدی addOutput(byte, int, int) پردازش می‌شوند.

offset int : یک آفست از داده‌های جدید ذخیره شده در data

length int : بایت‌های یک داده جدید در data که قرار است پردازش شوند.

لغو

public void cancel ()

درخواست لغو اجرای آزمایشی را دارد.

فلاشینگ

public void flush ()

در پایان اجرای فرآیند فراخوانی می‌شود (مگر اینکه فرآیند لغو شده باشد). این به گیرنده اجازه می‌دهد تا هر داده‌ای را که هنوز پردازش نشده است، خاتمه داده و پاک کند.

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

این متد زمانی فراخوانی می‌شود که دستور "am instrument" با یک استثنا از کار بیفتد. در صورت وقوع خرابی در حین اجرای تست، باید به همه شنوندگان ثبت شده اطلاع داده شود: ITestRunListener.testRunFailed و به دنبال آن ITestRunListener.testRunEnded .

پارامترها
errorMsg String

لغو شد

public boolean isCancelled ()

متد Cancel برای متوقف کردن اجرای دستور shell از راه دور.

بازگشت‌ها
boolean برای لغو اجرای دستور، true را وارد کنید.