Sertakan tes unit dan fungsional

Bagian ini menjelaskan cara menjalankan dan berkontribusi pada pengujian Federasi Perdagangan setelah melakukan perubahan pada proyek. Ini termasuk:

  • Di mana menambahkan kelas pengujian unit baru
  • Menjalankan pengujian unit di Eclipse dan di luar Eclipse IDE
  • Di mana menambahkan tes fungsional
  • Menjalankan tes fungsional
  • Menjalankan beberapa validasi pra-pengiriman TF secara lokal

Tambahkan tes unit

Di Android Open Source Project (AOSP), tambahkan kelas unit test di: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

PENTING: Menambahkan kelas pengujian unit baru Anda ke lokasi ini akan mengakibatkan kelas tersebut berjalan secara otomatis dalam prapengiriman tanpa penyiapan tambahan.

Jalankan pengujian unit

Semua pengujian unit AOSP dan pengujian fungsional untuk Federasi Perdagangan berlokasi di proyek tools/tradefederation/core/tests .

Di dalam Eclipse, untuk menjalankan pengujian unit individual, cukup klik kanan pengujian tersebut dan pilih Run As > JUnit . Untuk menjalankan semua pengujian unit, jalankan suite com.android.tradefed.UnitTests .

Anda juga dapat memulai pengujian unit dari baris perintah di pohon sumber Tradefed setelah pembuatan, seperti: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Pengujian unit dapat dijalankan secara mandiri, namun pengujian fungsional harus dijalankan dengan menggunakan Federasi Dagang itu sendiri; mereka membutuhkan perangkat Android. Semua pengujian fungsional harus mengikuti konvensi penamaan *FuncTest .

Periksa hasil tes unit

Saat menjalankan run_tradefed_tests.sh , pengujian unit menjalankan semua bagian rangkaian pengujian termasuk beberapa kondisi kesalahan. Ini akan mencetak keluaran verbose ke konsol, termasuk jejak tumpukan.

Ringkasan akhir dari 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, harap pastikan pengujian telah diperbaiki.

Tambahkan tes fungsional

  • Jika pengujian fungsional Anda melibatkan perangkat (menggunakan API ITestDevice apa pun), definisi suite terletak di com.android.tradefed.DeviceFuncTests . Jika tidak, definisi rangkaian terletak di com.android.tradefed.FuncTests .

  • Jika metode pengujian Anda masuk akal untuk dimasukkan ke dalam salah satu subkelas suite yang ada, lebih baik menambahkannya di sana. Jika tidak, silakan tambahkan kelas baru ke rangkaian yang berlaku.

  • Apa pun kasusnya, dengan menambahkannya ke rangkaian, pengujian Anda secara otomatis dijalankan di alur CI bersama pengujian fungsional lainnya.

Jalankan tes fungsional

Untuk menjalankan tes fungsional dari Eclipse:

  1. Pastikan perangkat terhubung ke host dan adb itu dan jika perlu fastboot berada di PATH Eclipse. Cara termudah untuk melakukan ini adalah meluncurkan Eclipse dari pengaturan shell dengan PATH yang tepat.
  2. Buat aplikasi Java. Jalankan konfigurasi melalui Jalankan > Jalankan konfigurasi .
  3. Setel proyek ke tradefed-tests dan kelas utama ke com.android.tradefed.command.CommandRunner .
  4. Jalankan m tradefed-all .
  5. Berikan argumen baris perintah berikut di tab Argumen : host --class <full path of test class to run>
  6. Klik Jalankan .

Untuk menjalankan tes fungsional di luar Eclipse.

  1. Membangun Federasi Perdagangan.
  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 di output adb devices .

Jalankan pengujian pra-pengiriman TF terhadap perubahan lokal

Jika Anda ingin menjalankannya dengan cara yang mirip dengan prapengiriman TF, gunakan ini:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

Tes pra-pengiriman TF adalah superset dari tes unit di atas, namun lebih lambat untuk menjalankannya. Jadi disarankan untuk menjalankan pengujian unit selama pengembangan untuk validasi lebih cepat dan menjalankan prapengiriman sebelum mengunggah CL.