تجزیهکنندهی نتایج ابزار دقیق
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(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED) شروع میشود. وقتی اولین وضعیت مورد آزمایشی را میبیند، به ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) میرود. اگر همه آزمایشها انجام شده باشند، وضعیت به ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) یا اگر با فراخوانی cancel() درخواست شده باشد، به ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) تغییر میکند.
هر بار که وضعیت جدیدی برای آزمون در دسترس قرار گیرد، به شنوندگان ثبتنامشده اطلاع داده خواهد شد.
خلاصه
سازندگان عمومی | |
|---|---|
InstrumentationProtoResultParser (String runName, | |
روشهای عمومی | |
|---|---|
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,
listeners) InstrumentationProtoResultParser را میسازد.
| پارامترها | |
|---|---|
runName | String : نام اجرای آزمایشی که باید به ITestRunListener.testRunStarted ارائه شود |
listeners | : همزمان با اجرای تستها، از نتایج تست مطلع میشود |
روشهای عمومی
خروجی اضافه
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(long, میشوند. ITestRunListener.testRunEnded(long, اگر خرابی در حین اجرای تست رخ دهد.
| پارامترها | |
|---|---|
errorMsg | String |
لغو شد
public boolean isCancelled ()
متد Cancel برای متوقف کردن اجرای دستور shell از راه دور.
| بازگشتها | |
|---|---|
boolean | برای لغو اجرای دستور، true را وارد کنید. |