Menyertakan pengujian unit dan fungsional

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

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

Menambahkan pengujian unit

Pada Proyek Open Source Android (AOSP), tambahkan class pengujian unit di: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

PENTING: Menambahkan kelas pengujian unit baru ke lokasi ini akan menyebabkan secara otomatis berjalan di {i> pre-submit <i}tanpa penyiapan tambahan.

Menjalankan pengujian unit

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

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

Anda juga dapat memulai pengujian unit dari command line di 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 menggunakan Federasi Perdagangan itu sendiri; mereka membutuhkan perangkat Android. Semua berfungsi pengujian harus mengikuti konvensi penamaan *FuncTest.

Memeriksa hasil pengujian unit

Saat menjalankan run_tradefed_tests.sh, pengujian unit menjalankan semua bagian dari termasuk beberapa kondisi kesalahan. Tindakan ini akan mencetak output panjang ke konsol, termasuk pelacakan 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 pastikan bahwa pengujian telah diperbaiki.

Menambahkan pengujian fungsional

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

  • Jika metode pengujian Anda masuk akal untuk dimasukkan ke dalam sub-class suite yang ada, tambahkan di sana. Jika tidak, silakan tambahkan kelas baru ke Google Workspace.

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

Menjalankan uji fungsi

Untuk menjalankan pengujian fungsional dari Eclipse:

  1. Pastikan perangkat terhubung ke host dan adb, serta jika perlu fastboot ada dalam PATH Eclipse. Cara termudah untuk melakukannya adalah dengan meluncurkan Eclipse dari penyiapan shell dengan PATH yang tepat.
  2. Membuat aplikasi Java. Jalankan konfigurasi melalui Run > Lari konfigurasi.
  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. Membangun Federasi Perdagangan.
  2. Hubungkan perangkat Android ke host.
  3. Jalankan tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. Jika perlu, pilih perangkat dengan menambahkan --serial <serial no> sebagai perangkat muncul dalam output adb devices.

Menjalankan pengujian 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

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

Pengujian pra-pengiriman TF adalah superset dari pengujian unit di atas, tetapi lebih lambat untuk menjalankannya. Jadi disarankan untuk menjalankan pengujian unit selama pengembangan untuk validasi yang lebih cepat dan menjalankan {i> presubmit<i} sebelum mengunggah CL.