Bagian ini menjelaskan cara menjalankan dan berkontribusi pada pengujian Trade Federation setelah melakukan perubahan pada project. Hal ini mencakup:
- Tempat menambahkan class pengujian unit baru
- Menjalankan pengujian unit di Eclipse dan di luar Eclipse IDE
- Tempat menambahkan pengujian fungsional
- Menjalankan pengujian fungsional
- Menjalankan beberapa validasi pra-submit TF secara lokal
Menambahkan pengujian unit
Di Proyek Open Source Android (AOSP), tambahkan class pengujian unit di: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
PENTING: Menambahkan class pengujian unit baru ke lokasi ini akan membuatnya otomatis berjalan dalam pra-commit tanpa penyiapan tambahan.
Menjalankan pengujian unit
Semua pengujian unit dan pengujian fungsional AOSP untuk Trade Federation berada di project
tools/tradefederation/core/tests
.
Di dalam Eclipse, untuk menjalankan pengujian unit satu per satu, cukup klik kanan pengujian, lalu pilih Run As > JUnit. Untuk menjalankan semua pengujian unit, jalankan rangkaian com.android.tradefed.UnitTests.
Anda juga dapat memulai pengujian unit dari command line di hierarki sumber Tradefed setelah membangun, seperti berikut:
tools/tradefederation/core/javatests/run_tradefed_tests.sh
Pengujian unit dapat dijalankan secara mandiri, tetapi pengujian fungsional harus dijalankan
dengan menggunakan Trade Federation itu sendiri; pengujian ini memerlukan perangkat Android. Semua pengujian
fungsional harus mengikuti konvensi penamaan *FuncTest
.
Memeriksa hasil pengujian unit
Saat menjalankan run_tradefed_tests.sh
, pengujian unit akan melatih semua bagian
test harness, termasuk beberapa kondisi error. Perintah ini akan mencetak output panjang
ke konsol, termasuk stack trace.
Ringkasan akhir hasil akan menunjukkan apakah terjadi kegagalan atau tidak.
Contoh ringkasan akhir di konsol:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Semua pengujian dipertahankan agar lulus, jadi jika terjadi kegagalan pada perubahan lokal Anda, pastikan pengujian diperbaiki.
Menambahkan pengujian fungsional
Jika pengujian fungsional Anda melibatkan perangkat (menggunakan API
ITestDevice
apa pun), definisi rangkaian terletak dicom.android.tradefed.DeviceFuncTests
. Jika tidak, definisi rangkaian terletak dicom.android.tradefed.FuncTests
.Jika metode pengujian Anda masuk akal untuk ditempatkan di salah satu sub-class rangkaian yang ada, sebaiknya tambahkan di sana. Jika tidak, Anda dapat menambahkan class baru ke rangkaian pengujian yang berlaku.
Dalam kedua kasus tersebut, dengan menambahkannya ke suite, pengujian Anda akan otomatis dijalankan di pipeline CI dengan pengujian fungsional lainnya.
Menjalankan pengujian fungsional
Untuk menjalankan pengujian fungsional dari Eclipse:
- Pastikan perangkat terhubung ke host dan
adb
sertafastboot
(jika perlu) ada di PATH Eclipse. Cara termudah untuk melakukannya adalah dengan meluncurkan Eclipse dari penyiapan shell dengan PATH yang tepat. - Buat aplikasi Java. Jalankan konfigurasi melalui Run > Run configurations.
- Tetapkan project ke
tradefed-tests
dan class utama kecom.android.tradefed.command.CommandRunner
. - Jalankan
m tradefed-all
. - Berikan argumen command line berikut di tab Arguments:
host --class <full path of test class to run>
- Klik Run.
Untuk menjalankan pengujian fungsional di luar Eclipse.
- Membangun Federasi Perdagangan.
- Hubungkan perangkat Android ke host.
- Jalankan
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- Atau, pilih perangkat dengan menambahkan
--serial <serial no>
seperti yang terlihat di outputadb devices
.
Menjalankan pengujian pra-kirim TF terhadap perubahan lokal
Jika Anda ingin menjalankan dengan cara yang serupa seperti pra-commit TF, gunakan ini:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Tindakan ini akan memicu semua pengujian pra-kirim TF terhadap TF yang dibuat secara lokal untuk membantu Anda memvalidasi bahwa perubahan Anda tidak merusak pengujian apa pun.
Pengujian pra-kirim TF adalah superset dari pengujian unit di atas, tetapi lebih lambat untuk menjalankannya. Jadi, sebaiknya jalankan pengujian unit selama pengembangan untuk validasi yang lebih cepat dan jalankan presubmit sebelum mengupload CL.