Test runner adalah unit eksekusi alur pemanggilan. Di sinilah pengujian benar-benar berjalan.
Antarmuka
Test runner ditentukan melalui antarmuka IRemoteTest,
yang menyediakan metode run sederhana untuk diterapkan yang akan dipanggil saat
pengujian akan dijalankan.
Hal ini memungkinkan definisi pengujian yang paling sederhana terjadi. Namun, dalam praktiknya, penulis pengujian akan memerlukan lebih banyak informasi untuk menulis pengujian dengan benar, biasanya informasi build dan perangkat. Di sinilah antarmuka berikut berguna.
Dasar
Kedua antarmuka ini adalah yang paling banyak digunakan saat ini, karena mewakili kebutuhan dasar sebagian besar pengujian.
- IBuildReceiver
memungkinkan pengujian mendapatkan objek
IBuildInfoyang dibuat pada langkah penyedia build yang berisi semua informasi dan artefak yang terkait dengan penyiapan pengujian. - IDeviceTest
memungkinkan TF menerima objek
ITestDeviceyang mewakili perangkat yang sedang diuji dan menyediakan API untuk berinteraksi dengannya.
Lanjutan
Ada antarmuka tambahan yang memungkinkan interaksi yang lebih kompleks antara test harness dan test runner:
- ITestFilterReceiver, yang memungkinkan pengujian menerima kumpulan filter untuk menjalankan pengujian tertentu saja. Hal ini berguna dalam menjalankan subset pengujian.
- ITestCollector, yang memungkinkan test runner hanya menjalankan pengujian secara kering, bukan benar-benar menjalankannya. Hal ini berguna dalam mengumpulkan daftar semua kasus pengujian.
Test runner yang ada
Berbagai test runner sudah ada, beberapa untuk jenis pengujian utama:
- AndroidJUnitTest / InstrumentationTest (terkait dengan AJUR di sisi perangkat)
- GTest (sisi perangkat dan host) dengan library googletest
- Pengujian yang didorong host (pengujian Java yang dijalankan di host dan memanggil perangkat dari sana)
- Pengujian unit Java murni tests (runner kami melakukan keduanya)
- Pengujian Python
- Pengujian Google Benchmark dengan library benchmark
Sejumlah besar test runner kustom ada selain yang di atas; mereka melayani tujuan khusus untuk beberapa pengujian fungsional, misalnya Pengujian Boot.
Menulis test runner baru
Panduan selengkapnya tentang cara menulis test runner baru tersedia di bagian menulis pengujian bagian.