Sertakan Unit dan Tes Fungsional

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

  • Di mana menambahkan kelas unit test 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 membuatnya berjalan secara otomatis di pra-pengiriman tanpa penyiapan tambahan.

Jalankan tes unit

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

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

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

Tes unit dapat dilakukan secara mandiri, tetapi tes fungsional harus dilakukan dengan menggunakan Federasi Perdagangan itu sendiri; mereka membutuhkan perangkat Android. Semua tes fungsional harus mengikuti konvensi penamaan *FuncTest .

Periksa hasil tes unit

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

Ringkasan akhir dari hasil akan menunjukkan jika 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 tes dipertahankan untuk lulus, jadi jika terjadi kegagalan pada perubahan lokal Anda, pastikan tes sudah 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 suite terletak di com.android.tradefed.FuncTests .

  • Jika metode pengujian Anda masuk akal untuk dimasukkan ke dalam salah satu sub-kelas suite yang ada, pilih untuk menambahkannya di sana. Jika tidak, silakan tambahkan kelas baru ke suite yang berlaku.

  • Dalam kedua kasus tersebut, dengan menambahkannya ke suite, pengujian Anda secara otomatis dijalankan di pipeline CI dengan 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 ada di PATH Eclipse. Cara termudah untuk melakukannya adalah meluncurkan Eclipse dari pengaturan shell dengan PATH yang tepat.
  2. Membuat aplikasi Java. Jalankan konfigurasi melalui Run > Run configurations .
  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 .

Menjalankan tes pra-pengiriman TF terhadap perubahan lokal

Jika Anda ingin menjalankan dengan cara yang sama seperti pra-pengiriman 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 merusak pengujian apa pun.

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