تكوين المشاركة

توضح هذه الصفحة ما هو ممكن لضبط لوحدة نمطية جناح ( AndroidTest.xml ) عن طريق عملية التجزئة والحصول على أفضل سرعة الأداء أثناء تنفيذ المستمر في المختبر. سنحاول وصف الخيارات بطريقة عامة مع منطق استخدام كل منها.

عند تشغيل مجموعة في المختبر بشكل مستمر ، عادةً ما يتم تقسيم المجموعة عبر عدة أجهزة لتقليل وقت الإكمال الإجمالي. يحاول الحزام عادةً موازنة وقت تنفيذ كل جزء لتقليل وقت الإكمال الإجمالي (عند انتهاء آخر جزء) ؛ ولكن نظرًا لطبيعة بعض الاختبارات ، ليس لدينا دائمًا ما يكفي من الاستبطان ونحتاج إلى مالك الوحدة لضبط بعض السلوك.

قابل للتقسيم أم غير قابل للتجزئة؟

فمن الممكن لوضع علامة وحدة نمطية ( AndroidTest.xml ) مع <option name="not-shardable" value="true" /> لإعلام تسخير أنه لا ينبغي أن sharded.

في وحدة نمطية ، السماح لجزء الحزام بتقسيم وحدتك (السلوك الافتراضي) هو الشيء الصحيح الذي يجب القيام به. لكن في بعض الحالات ، قد ترغب في تجاوز هذا السلوك:

  • عندما يكون إعداد الوحدة الخاصة بك مكلفًا:

تؤدي مشاركة وحدة نمطية إلى تشغيل الإعداد (تثبيت 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 ستضمن أنك لن تقوم بإنشاء شظايا فارغة.