Ikuti langkah-langkah berikut untuk menyiapkan Tradefed menggunakan Eclipse.
Buat ruang kerja terpisah untuk mengembangkan Trade Federation, jangan menggunakan ulang ruang kerja yang sudah digunakan untuk pengembangan perangkat Android.
Jika perlu, Anda dapat mendownload Eclipse IDE for Java developers dari: eclipse.org/downloads
Membuat project
- Jalankan make sekali dari command line. Tindakan ini akan membuat library eksternal yang bergantung pada project di bawah.
- Tetapkan variabel classpath TRADEFED_ROOT di
Window > Preferences > Java > Build Path> Classpath Variables
dan arahkan ke root sumber tradefed Anda - Tetapkan variabel jalur TRADEFED_ROOT di
Window > Preferences > General > Workspace > Linked Resources
dan arahkan ke root sumber tradefed Anda Gunakan wizard
File > Import...-> General > Existing Projects into workspace"
untuk memasukkan project Java open source ini di jalur berikut: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
Jika ingin melihat kode sumber
ddmlib
, Anda dapat melampirkan kode sumber dari cabang alat yang tidak digabungkan, seperti /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.Secara opsional, jika Anda juga ingin project harness CTS dimuat, impor:
test/suite_harness/common/util test/suite_harness/common/host-side/util test/suite_harness/common/host-side/tradefed
Format otomatis
CATATAN: File yang diperlukan berada dalam development/ide/eclipse
di pohon sumber platform lengkap. Jadi, Anda harus memeriksa cabang platform seperti
android-latest-release
untuk mendapatkan file ini:
/development/android16-release/ide/eclipse/
Gunakan file preferensi di Eclipse untuk menyetel pemformat secara otomatis ke panduan gaya Android. Untuk melakukannya di Studio:
- Buka Window > Preferences > Java > Code Style.
- Di bagian Formatter, impor file
android-formatting.xml
. - Di bagian Atur > Impor, impor file
android.importorder
.
Menghapus spasi kosong di akhir
Untuk memaksa Eclipse menghapus semua spasi kosong di akhir:
- Buka Window > Preferences -> Java -> Editor -> Save Actions.
- Kemudian, Additional Actions -> Configure -> Code > Organizing tab -> Formatter.
- Centang Hapus Spasi di Akhir Baris.
- Klik Terapkan dan Tutup.
Memeriksa gaya kode
Saat mengirimkan daftar perubahan, hook pra-upload otomatis akan berjalan untuk memeriksa format kode Anda: google-java-format
Hal ini membantu memformat kode Anda ke standar umum.
Debug Eclipse
Jika Anda ingin menjalankan kode TF melalui debugger di Eclipse, sebaiknya Anda membuat pengujian unit terlebih dahulu untuk kode yang dimaksud karena ini akan menjadi cara paling sederhana dan tercepat untuk menjalankan fungsi.
Untuk men-debug pengujian unit TF, cukup klik kanan pengujian tersebut, lalu pilih Debug As > JUnit test.
Untuk men-debug pengujian fungsional TF, ikuti petunjuk di bagian sebelumnya untuk menjalankan pengujian fungsional, tetapi gunakan menu Run > Debug configurations.
Untuk men-debug program TF itu sendiri, saat menjalankan konfigurasi apa pun, ikuti
petunjuk di bagian sebelumnya untuk menjalankan pengujian fungsional, tetapi berikan
argumen command line untuk konfigurasi yang ingin Anda jalankan pada langkah 4. Jadi, untuk men-debug konfigurasi 'instrument', buka menu Run > Debug configuration dan setel tab Arguments di konfigurasi debug Eclipse ke -- package <package to run> instrument
.
Men-debug jarak jauh dengan Eclipse
Ikuti langkah-langkah berikut untuk men-debug sesi tradefed dari jarak jauh yang dimulai dari command line tradefed.sh
:
- Mulai tradefed.sh dengan tanda debug:
TF_DEBUG=1 tradefed.sh
- Tunggu hingga Anda melihat perintah ini dari JVM:
Listening for transport dt_socket at address: 10088
Ini berarti JVM sedang menunggu debugger untuk melakukan proses attach di port10088
. - Lampirkan dengan debug jarak jauh Eclipse dari menu utama: Pilih Run > Debug Configurations....
- Pada dialog pop-up, pilih Remote Java Application dari menu kiri.
- Klik ikon New launch configuration di panel tindakan.
- Beri nama konfigurasi sesuai keinginan Anda, lalu pilih tradefederation sebagai project.
- Isi port menggunakan alamat yang diberikan sebelumnya.
- Beralih ke tab Source dan tambahkan project tradefederation dan google-tradefed ke Source Lookup Path.
- Klik Debug untuk memulai sesi penelusuran kesalahan.
Debugger terhubung ke proses JVM yang memproses, dan terminal yang menjalankan
tradefed.sh
menampilkan perintah tf>
.
Untuk menjalankan kode dalam mode debug, tetapkan titik henti sementara di Eclipse dan panggil
perintah Tradefed (yaitu run <test>
) di terminal. Untuk men-debug apa pun selama startup TF, Anda dapat menetapkan titik henti sementara terlebih dahulu, lalu melampirkan debugger Eclipse.
TIPS: Untuk menggunakan port alternatif, tambahkan TF_DEBUG_PORT=nnn
ke perintah pada langkah 1 di atas. Anda bahkan dapat menggunakannya di lingkungan produksi jika Anda memiliki bug macet yang misterius untuk diselidiki: ubah suspend=y
menjadi suspend=n
di tradefed.sh
dan mulai dengan tanda debug. JVM tidak akan menunggu debugger terhubung, tetapi Anda dapat melakukannya kapan saja selama proses masih berjalan.
Men-debug dari jauh menggunakan JDB
Untuk menggunakan Java Debugger JDB, ikuti langkah-langkah yang mirip dengan langkah-langkah untuk Eclipse:
- Mulai
tradefed.sh
dengan tanda debug:TF_DEBUG=1 tradefed.sh
- Tunggu hingga Anda melihat perintah dari JVM:
Listening for transport dt_socket at address: 10088
. Hubungkan
jdb
. Misalnya, dari croot, jalankan:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
Tunggu koneksi dan mulai proses debug. Jalankan
man jdb
untuk mendapatkan bantuan lebih lanjut.
Memeriksa cakupan kode
- Instal plugin Eclemma.
- Buka Help > Install New Software dan arahkan wizard ke: http://update.eclemma.org/
- Setelah diinstal, pilih opsi pengujian Coverage As > JUnit untuk melakukan proses cakupan kode.