Eclipse را تنظیم کنید

برای راه اندازی Tradefed با استفاده از Eclipse این مراحل را دنبال کنید.

یک فضای کاری جداگانه برای توسعه Trade Federation ایجاد کنید، از فضای کاری که قبلاً برای توسعه دستگاه Android استفاده شده است، دوباره استفاده نکنید.

در صورت نیاز، می توانید Eclipse IDE را برای توسعه دهندگان جاوا از: eclipse.org/downloads دانلود کنید

پروژه ها را ایجاد کنید

  1. یک بار make را از خط فرمان اجرا کنید. با این کار کتابخانه های خارجی وابسته به پروژه های زیر ساخته می شود.
  2. متغیر TRADEFED_ROOT classpath را در Window > Preferences > Java > Build Path> Classpath Variables تنظیم کنید و آن را به ریشه منبع tradefed خود هدایت کنید.
  3. متغیر مسیر TRADEFED_ROOT را در Window > Preferences > General > Workspace > Linked Resources تنظیم کنید و آن را به ریشه منبع tradefed خود قرار دهید.
  4. از جادوگر File > Import...-> General > Existing Projects into workspace" برای وارد کردن این پروژه های جاوا منبع باز تحت مسیرهای زیر استفاده کنید:

    prebuilts/misc/common/ddmlib\*
    tools/loganalysis
    tools/loganalysis/tests
    tools/tradefederation/core
    tools/tradefederation/core/tests
    tools/tradefederation/contrib
    tools/tradefederation/core/remote
    platform_testing/libraries/health/runners/longevity/host
    platform_testing/libraries/annotations
    platform_testing/libraries/health/composers/host
    
  5. در صورت تمایل، اگر می‌خواهید کد منبع ddmlib را ببینید، کد منبع را از یک شاخه ابزار جدا نشده، مانند /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java ضمیمه کنید.

  6. در صورت تمایل، اگر می‌خواهید پروژه‌های مهار CTS نیز بارگیری شوند، وارد کنید:

    test/suite_harness/common/util
    test/suite_harness/common/host-side/util
    test/suite_harness/common/host-side/tradefed
    

فرمت خودکار

توجه: فایل‌های مورد نیاز در development/ide/eclipse در درخت منبع کامل پلتفرم زندگی می‌کنند. بنابراین برای دریافت این فایل ها باید یک شاخه پلتفرم مانند main را بررسی کنید: /development/main/ide/eclipse/

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

  1. به Window > Preferences > Java > Code Style بروید.
  2. در قسمت Formatter ، فایل android-formatting.xml را وارد کنید.
  3. در قسمت Organize > Imports ، فایل android.importorder را وارد کنید.

فضاهای خالی انتهایی را حذف کنید

برای وادار کردن Eclipse به حذف تمام فضای خالی انتهایی:

  1. به Window > Preferences -> Java -> Editor -> Save Actions بروید.
  2. سپس Additional Actions -> Configure -> Code > Organising tab -> Formatter .
  3. گزینه Remove Trailing Space را علامت بزنید.
  4. روی Apply و Close کلیک کنید.

سبک کد را بررسی کنید

هنگام ارسال یک لیست تغییرات، یک قلاب پیش آپلود خودکار برای بررسی قالب کد شما اجرا می شود: google-java-format

این به قالب بندی کد شما با استانداردهای رایج کمک می کند.

اشکال زدایی Eclipse

اگر می‌خواهید کد TF را از طریق یک اشکال‌زدا در Eclipse اجرا کنید، توصیه می‌شود ابتدا یک تست واحد برای کد مورد نظر ایجاد کنید زیرا این ساده‌ترین و سریع‌ترین راه برای اعمال عملکرد خواهد بود.

برای اشکال زدایی تست واحد TF، به سادگی روی آن کلیک راست کرده و Debug As > JUnit test را انتخاب کنید.

برای اشکال‌زدایی یک تست عملکردی TF، دستورالعمل‌های بخش قبلی را برای اجرای یک تست عملکردی دنبال کنید، اما از منوی Run > Debug configurations استفاده کنید.

برای اشکال‌زدایی خود برنامه TF، هنگام اجرای هر پیکربندی، دستورالعمل‌های بخش قبل را برای اجرای یک تست عملکردی دنبال کنید، اما آرگومان‌های خط فرمان را برای پیکربندی که می‌خواهید در مرحله 4 اجرا کنید، ارائه دهید. بنابراین برای اشکال‌زدایی پیکربندی ابزار، به منوی Run > Debug configuration بروید و تب Arguments را در پیکربندی اشکال زدایی Eclipse روی -- package <package to run> instrument تنظیم کنید.

اشکال زدایی از راه دور با Eclipse

این مراحل را برای رفع اشکال از راه دور یک جلسه tradefed شده از خط فرمان tradefed.sh دنبال کنید:

  1. tradefed.sh را با پرچم رفع اشکال شروع کنید: TF_DEBUG=1 tradefed.sh
  2. منتظر بمانید تا این فرمان را از JVM ببینید: Listening for transport dt_socket at address: 10088 این بدان معناست که JVM منتظر است تا اشکال زدا در پورت 10088 متصل شود.
  3. با اشکال زدایی از راه دور Eclipse از منوی اصلی پیوست کنید: Run > Debug Configurations... را انتخاب کنید.
  4. در گفتگوی پاپ آپ، Remote Java Application را از منوی سمت چپ انتخاب کنید.
  5. روی نماد پیکربندی راه اندازی جدید در نوار عمل کلیک کنید.
  6. پیکربندی را به دلخواه خود نامگذاری کنید و فدراسیون تجاری را به عنوان پروژه انتخاب کنید.
  7. با استفاده از آدرسی که قبلا ارائه شده است، پورت را پر کنید.
  8. به برگه Source بروید و پروژه‌های tradefederation و google-tradefed را به مسیر جستجوی منبع اضافه کنید.
  9. برای شروع جلسه رفع اشکال، روی Debug کلیک کنید.

دیباگر به فرآیند گوش دادن JVM متصل می شود و ترمینال در حال اجرا tradefed.sh اعلان tf> را نشان می دهد.

برای عبور از کد خود در حالت اشکال زدایی، یک نقطه شکست در Eclipse تعیین کنید و دستور Tradefed خود را فراخوانی کنید (یعنی run <test> ) در ترمینال. برای اشکال زدایی هر چیزی در هنگام راه اندازی TF، می توانید ابتدا نقطه شکست را تنظیم کنید و سپس اشکال زدایی Eclipse را متصل کنید.

نکته: برای استفاده از یک پورت جایگزین، TF_DEBUG_PORT=nnn را به دستور مرحله 1 بالا اضافه کنید. حتی می‌توانید از این در محیط تولید استفاده کنید اگر اشکالات هنگ مرموز برای بررسی دارید: suspend=y به suspend=n در tradefed.sh تغییر دهید و با پرچم رفع اشکال شروع کنید. JVM منتظر نمی ماند تا دیباگر متصل شود، اما تا زمانی که فرآیند هنوز در حال اجرا باشد، می توانید این کار را در هر زمانی انجام دهید.

اشکال زدایی از راه دور با استفاده از JDB

برای استفاده از Java Debugger JDB، مراحل مشابه Eclipse را دنبال کنید:

  1. tradefed.sh با پرچم رفع اشکال شروع کنید: TF_DEBUG=1 tradefed.sh
  2. صبر کنید تا فرمان JVM: Listening for transport dt_socket at address: 10088 ببینید.
  3. jdb وصل کنید. به عنوان مثال، از croot run:

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. منتظر اتصال و رفع اشکال باشید! برای کمک بیشتر، man jdb اجرا کنید.

پوشش کد را بررسی کنید

  1. افزونه Eclemma را نصب کنید.
  2. به Help > Install New Software بروید و جادوگر را به آدرس زیر هدایت کنید: http://update.eclemma.org/
  3. پس از نصب، گزینه Coverage As > JUnit test را برای اجرای اجرای پوشش کد انتخاب کنید.