اجراکننده آزمایش واحد اجرایی جریان فراخوانی است. اینجا جایی است که آزمایشها واقعاً اجرا میشوند.
میانهها
اجراکنندههای آزمایش ازطریق واسط IRemoteTest
تعریف میشوند،
که روش run سادهای برای پیادهسازی ارائه میدهد که وقتی آزمایشها باید اجرا شوند فراخوانی میشود.
این کار امکان سادهترین تعریف اجرای آزمایشی را فراهم میکند. اما در عمل، نویسندگان آزمایش برای نوشتن صحیح آزمایشهایشان به اطلاعات بیشتری نیاز دارند، معمولاً اطلاعات ساخت و دستگاه. اینجا جایی است که میاناهای زیر بهکار میآیند.
پایه
این دو میانای امروزه بیشترین استفاده را دارند، زیرا نیازهای اساسی اکثر آزمایشها را برآورده میکنند.
- IBuildReceiver
به آزمایش اجازه میدهد تا شیء
IBuildInfoایجادشده در مرحله ارائهدهنده ساخت را دریافت کند که حاوی همه اطلاعات و آرتیفکتهای مربوط به راهاندازی آزمایش است. - IDeviceTest
به TF اجازه میدهد تا شیء
ITestDeviceرا که نشاندهنده دستگاه تحت آزمایش است دریافت کند و یک میانای برنامهسازی کاربردی برای تعامل با آن ارائه میدهد.
پیشرفته
میاناهای دیگری وجود دارد که امکان تعامل پیچیدهتر بین مجموعه دادههای تست و اجراکننده تست را فراهم میکند:
- ITestFilterReceiver، که به آزمایش اجازه میدهد مجموعهای از فیلترها را برای اجرای فقط آزمایشهای خاصی دریافت کند. این ویژگی برای اجرای زیرمجموعهای از آزمونها مفید است.
- ITestCollector، که به اجراکننده آزمایش اجازه میدهد بهجای اجرای واقعی آزمایشها، فقط آنها را اجرای آزمایشی کند. این کار در جمعآوری فهرست همه موارد آزمایشی مفید است.
اجراکنندگان آزمایش موجود
انواع مختلفی از اجراکنندههای آزمایش ازقبل وجود دارد، برخی برای انواع آزمایشهای اصلی:
- AndroidJUnitTest / InstrumentationTest (مرتبط با AJUR در سمت دستگاه)
- GTest (دستگاه و طرف میزبان) با کتابخانه googletest
- آزمایشهای میزبانمحور (آزمایشهای Java که روی میزبان اجرا میشوند و از آنجا دستگاه را فراخوانی میکنند)
- واحد خالص جاوا آزمایشی (دونده ما هر دو را انجام میدهد)
- آزمایشهای Python
- Google Benchmark با کتابخانه محکآزمایش میکند
علاوهبر موارد بالا، تعداد زیادی اجراکننده آزمایش سفارشی وجود دارد که برای برخی آزمایشهای عملکردی، مثلاً «آزمایش راهاندازی»، اهداف تخصصی دارند.
نوشتن اجراکننده آزمایش جدید
راهنماییهای بیشتری درباره نوشتن اجراکننده آزمایش جدید در بخش نوشتن آزمایشها دردسترس است.