شامل تست های واحد و عملکردی

این بخش نحوه اجرا و مشارکت در آزمون های فدراسیون تجارت را پس از ایجاد تغییر در پروژه توضیح می دهد. این شامل:

  • کجا می توان کلاس های تست واحد جدید را اضافه کرد
  • اجرای تست واحد در Eclipse و خارج از Eclipse IDE
  • کجا تست های عملکردی را اضافه کنیم
  • اجرای تست های عملکردی
  • اجرای برخی از اعتبارسنجی پیش ارسال TF به صورت محلی

اضافه کردن تست های واحد

در پروژه متن باز اندروید (AOSP)، کلاس واحد تست را در این قسمت اضافه کنید: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

مهم: افزودن کلاس‌های تست واحد جدید به این مکان‌ها منجر به اجرای خودکار آن‌ها در پیش‌ارسال بدون تنظیمات اضافی می‌شود.

تست های واحد را اجرا کنید

تمام تست‌های واحد AOSP و تست‌های عملکردی برای فدراسیون تجارت در پروژه tools/tradefederation/core/tests قرار دارند.

در داخل Eclipse، برای اجرای یک تست واحد جداگانه، به سادگی روی تست کلیک راست کرده و Run As > JUnit را انتخاب کنید. برای اجرای تمام تست های واحد، مجموعه com.android.tradefed.UnitTests را اجرا کنید.

همچنین می توانید تست واحد را از خط فرمان در درخت منبع Tradefed پس از ساخت شروع کنید، مانند: tools/tradefederation/core/javatests/run_tradefed_tests.sh

تست های واحد را می توان به صورت مستقل اجرا کرد، اما تست های عملکردی باید با استفاده از خود فدراسیون تجارت انجام شود. آنها به یک دستگاه اندرویدی نیاز دارند. تمام تست های عملکردی باید از قرارداد نامگذاری *FuncTest پیروی کنند.

نتایج آزمون های واحد را بررسی کنید

هنگام اجرای run_tradefed_tests.sh ، تست های واحد تمام قسمت های مهار تست از جمله برخی شرایط خطا را اعمال می کنند. خروجی پرمخاطب، از جمله ردپای پشته را روی کنسول چاپ می کند.

خلاصه نهایی نتایج نشان می دهد که آیا یک شکست رخ داده است یا خیر.

نمونه خلاصه نهایی در کنسول:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

همه تست‌ها برای قبولی حفظ می‌شوند، بنابراین اگر هر گونه شکستی در تغییر محلی شما رخ داد، لطفاً مطمئن شوید که تست‌ها برطرف شده‌اند.

اضافه کردن تست های عملکردی

  • اگر تست عملکردی شما شامل یک دستگاه (از هر ITestDevice API استفاده می‌کند)، تعریف مجموعه در com.android.tradefed.DeviceFuncTests قرار دارد. در غیر این صورت، تعریف مجموعه در com.android.tradefed.FuncTests قرار دارد.

  • اگر روش های آزمایشی شما منطقی است که یکی از زیر کلاس های مجموعه موجود را قرار دهید، ترجیح دهید آن را در آنجا اضافه کنید. در غیر این صورت، با خیال راحت یک کلاس جدید به مجموعه قابل اجرا اضافه کنید.

  • در هر صورت، با افزودن آن به مجموعه، تست شما به طور خودکار در خط لوله CI با سایر تست های عملکردی اجرا می شود.

تست های عملکردی را اجرا کنید

برای اجرای یک تست عملکردی از Eclipse:

  1. مطمئن شوید که دستگاهی به هاست متصل است و adb و در صورت لزوم fastboot در مسیر Eclipse قرار دارند. ساده ترین راه برای انجام این کار، راه اندازی Eclipse از راه اندازی پوسته با PATH مناسب است.
  2. یک برنامه جاوا ایجاد کنید. پیکربندی را از طریق Run > Run configurations اجرا کنید.
  3. پروژه را روی tradefed-tests و کلاس اصلی را روی com.android.tradefed.command.CommandRunner قرار دهید.
  4. m tradefed-all را اجرا کنید.
  5. آرگومان های خط فرمان زیر را در تب Arguments ارائه دهید: host --class <full path of test class to run>
  6. روی Run کلیک کنید.

برای اجرای تست های عملکردی خارج از Eclipse.

  1. ایجاد فدراسیون تجارت
  2. یک دستگاه اندرویدی را به هاست متصل کنید.
  3. اجرای tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. در صورت تمایل، دستگاه را با اضافه کردن --serial <serial no> همانطور که در خروجی adb devices ظاهر می‌شود، انتخاب کنید.

آزمایش‌های پیش‌ارسال TF را در برابر تغییرات محلی اجرا کنید

اگر می خواهید به روشی مشابه با پیش ارسال TF اجرا کنید، از این استفاده کنید:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

این کار همه آزمایش‌های پیش‌فرض TF را در برابر TF ساخته‌شده محلی شما آغاز می‌کند تا به شما کمک کند تأیید کنید که تغییر شما هیچ آزمایشی را شکست نمی‌دهد.

تست‌های پیش‌فرض TF مجموعه‌ای از تست‌های واحد بالا هستند، اما اجرای آن‌ها کندتر است. بنابراین توصیه می‌شود برای اعتبارسنجی سریع‌تر تست‌های واحد را در حین توسعه اجرا کنید و قبل از آپلود CL، پیش ارسال‌ها را اجرا کنید.