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

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

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

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

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

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

اجرای تست‌های واحد

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

برای اجرای تست‌های عملکردی خارج از 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، تست‌های پیش‌ارسال را اجرا کنید.