Menyertakan pengujian unit dan fungsional

Bagian ini menjelaskan cara menjalankan dan berkontribusi pada pengujian Trade Federation setelah melakukan perubahan pada project. Hal ini mencakup:

  • Tempat untuk menambahkan class pengujian unit baru
  • Menjalankan pengujian unit di Eclipse dan di luar Eclipse IDE
  • Tempat untuk menambahkan pengujian fungsional
  • Menjalankan pengujian fungsional
  • Menjalankan beberapa validasi pra-pengiriman TF secara lokal

Menambahkan pengujian unit

Di Project 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 Anda ke lokasi ini akan membuatnya otomatis berjalan dalam pra-pengiriman tanpa penyiapan tambahan.

Menjalankan pengujian unit

Semua pengujian unit AOSP dan pengujian fungsional untuk Trade Federation berada di project tools/tradefederation/core/tests.

Di dalam Eclipse, untuk menjalankan pengujian unit individual, 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 pohon sumber Tradefed setelah membangun, seperti ini: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Pengujian unit dapat dijalankan secara mandiri, tetapi pengujian fungsional harus dijalankan 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 menjalankan semua bagian dari test harness, termasuk beberapa kondisi error. Pengujian ini akan mencetak output panjang ke konsol, termasuk pelacakan tumpukan.

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 ITestDevice API apa pun), definisi rangkaian akan berada di com.android.tradefed.DeviceFuncTests. Jika tidak, definisi rangkaian akan berada di com.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 yang berlaku.

  • Dalam kedua kasus tersebut, dengan menambahkannya ke rangkaian, pengujian Anda akan otomatis dijalankan di pipeline CI dengan pengujian fungsional lainnya.

Menjalankan pengujian fungsional

Untuk menjalankan pengujian fungsional dari Eclipse:

  1. Pastikan perangkat terhubung ke host dan adb serta fastboot jika diperlukan berada di PATH Eclipse. Cara termudah untuk melakukannya adalah meluncurkan Eclipse dari penyiapan shell dengan PATH yang tepat.
  2. Buat aplikasi Java. Jalankan konfigurasi melalui Run > Run configurations.
  3. Tetapkan project ke tradefed-tests dan class utama ke com.android.tradefed.command.CommandRunner.
  4. Jalankan m tradefed-all.
  5. Berikan argumen command line berikut di tab Arguments: host --class <full path of test class to run>
  6. Klik Run.

Untuk menjalankan pengujian fungsional di luar Eclipse.

  1. Buat Trade Federation.
  2. Hubungkan perangkat Android ke host.
  3. Jalankan tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. Secara opsional, pilih perangkat dengan menambahkan --serial <serial no> seperti yang muncul dalam output adb devices.

Menjalankan pengujian pra-pengiriman TF terhadap perubahan lokal

Jika Anda ingin menjalankan dengan cara yang mirip dengan pra-pengiriman TF, gunakan ini:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Tindakan ini akan memicu semua pengujian pra-pengiriman TF terhadap TF yang dibuat secara lokal untuk membantu Anda memvalidasi bahwa perubahan Anda tidak merusak pengujian apa pun.

Pengujian pra-pengiriman TF adalah superset pengujian unit di atas, tetapi lebih lambat untuk menjalankannya. Jadi, sebaiknya jalankan pengujian unit selama pengembangan untuk validasi yang lebih cepat dan jalankan pra-pengiriman sebelum mengupload CL.