این صفحه توضیح می دهد که چه چیزی برای تنظیم یک ماژول مجموعه ( AndroidTest.xml
) از طریق اشتراک گذاری و دریافت بهترین عملکرد سرعت در طول اجرای مداوم در آزمایشگاه امکان پذیر است. ما سعی خواهیم کرد که گزینه ها را به شیوه ای کلی با منطق استفاده از هر یک توصیف کنیم.
هنگام اجرای مداوم یک مجموعه در آزمایشگاه، مجموعه معمولاً در چندین دستگاه تقسیم می شود تا زمان تکمیل کلی کاهش یابد. هارنس معمولاً تلاش می کند تا زمان اجرای هر قطعه را متعادل کند تا زمان تکمیل کلی را به حداقل برساند (زمانی که آخرین قطعه به پایان می رسد). اما به دلیل ماهیت برخی از تست ها، ما همیشه درون نگری کافی نداریم و به مالک ماژول نیاز داریم تا برخی رفتارها را تنظیم کند.
خرد شدنی است یا خرد نشدنی؟
میتوان یک ماژول ( AndroidTest.xml
) را با <option name="not-shardable" value="true" />
برچسبگذاری کرد تا به هارنس اطلاع داده شود که نباید قطعه قطعه شود.
در یک ماژول معمولی، اجازه دادن به هارنس ماژول شما (رفتار پیش فرض) کار درستی است. اما در برخی موارد، ممکن است بخواهید آن رفتار را نادیده بگیرید:
- هنگامی که راه اندازی ماژول شما گران است:
به اشتراک گذاری یک ماژول منجر به آماده سازی (نصب APK، فایل فشار و غیره) می شود که احتمالاً یک بار در هر دستگاه درگیر اجرا می شود. اگر راه اندازی ماژول شما طولانی و گران است و ارزش تکرار آن را در مقایسه با زمان اجرا ندارد، باید ماژول خود را به عنوان غیرقابل تجزیه برچسب گذاری کنید.
- زمانی که تعداد تست ها در ماژول شما کم است:
شاره کردن یک ماژول باعث می شود که همه موارد آزمایشی احتمالاً به طور مستقل در دستگاه های مختلف اجرا شوند. این به نکته اول مربوط می شود. اگر تعداد تست های شما کم باشد، ممکن است در نهایت با یک تست یا بدون تست در برخی از قطعات مواجه شوید، که هر مرحله آماده سازی را بسیار گران می کند. برای مثال، نصب APK برای یک مورد آزمایشی معمولاً ارزشش را ندارد.
تست های ابزار دقیق: حداکثر تعداد خرده ها؟
تست ابزار دقیقی که از طریق AndroidJUnitTest اجرا میشود تا زمانی که APK را واقعاً نصب و اجرا نکنیم، تعداد آزمایشهایی که بخشی از ابزار دقیق هستند را نشان نمیدهد. این عملیات ها پرهزینه هستند و نمی توان آنها را در زمان اشتراک گذاری برای همه ماژول های مجموعه اجرا کرد.
مهار ممکن است تست ابزار دقیق را بیش از حد خرد کند و در نهایت با چند خرده خالی تمام شود. خرد کردن یک تست ابزار دقیق با پنج تست در شش خرده منجر به پنج قطعه با یک تست و یک قطعه بدون تست می شود. هر کدام از این قطعات به نصب APK پرهزینه نیاز دارند.
بنابراین وقتی تعداد تستها در APK تست ابزار دقیق کم است، برچسبگذاری ماژول با <option name="not-shardable" value="true" />
به هارنس اجازه میدهد تا بداند که به اشتراک گذاری آن ماژول ارزشش را ندارد.
اجراکننده AndroidJUnitTest
یک گزینه ویژه دارد که به آن امکان میدهد حداکثر تعداد خردههایی را که مجاز به خرد کردن آنها است مشخص کند: <option name="ajur-max-shard" value="5" />
.
این به شما این امکان را می دهد که حداکثر تعداد دفعاتی را که می توان ابزار دقیق را بدون توجه به تعداد قطعات درخواست شده در سطح فراخوانی خرد کرد، مشخص کنید. به طور پیش فرض، ابزار دقیق به تعداد خرده های درخواستی برای فراخوانی تقسیم می شود.
به عنوان مثال، اگر APK تست ابزار دقیق شما حاوی تنها دو مورد تست است، اما همچنان میخواهید آن را خرد کنید، داشتن مقدار ajur-max-shard
2
تضمین میکند که خردههای خالی ایجاد نمیکنید.