Konteks
Saya melanjutkan beberapa kode lawas untuk permainan di Unity3d, dan saya ingin menulis beberapa tes fungsional yang dimaksudkan untuk regresi, untuk memastikan saya tidak memecahkan hal-hal ketika menerapkan hal-hal baru atau ketika melakukan refactoring.
Saya sudah tahu ada suite 'Alat Uji Unit' untuk Unity3d yang tersedia sebagai aset. Saya telah menggunakannya sebagai unit-test suite, jadi saya menguji model saya (kelas).
Contoh tes seperti apa yang saya pikirkan
Untuk "tes fungsional" maksud saya hal-hal seperti ini:
- Jalankan programnya
- Ketika di adegan menu, nyatakan ada tombol yang mengatakan "mulai"
- Klik itu
- Kemudian tegaskan adegan baru yang dimuat
- Menegaskan piksel XXX berwarna merah
- Klik dalam koordinat XXX
- Tegaskan sekarang bahwa piksel berubah menjadi hijau
- dll.
Pertanyaan
T1: Bagaimana cara saya menulis dan menjalankan tes fungsional untuk game saya? Apakah ini juga biasanya dilakukan di UnityTestTools (UTT)?
T2: Jika UTT lebih untuk Pengujian Unit, apakah ada rangkaian terpisah untuk pengujian fungsional? Yang mana?
Catatan:
Saya menargetkan Android, dan berjalan Unity5.3.1f1
sumber
Jawaban:
Seperti yang saya pahami, Anda ingin memahami pengujian otomasi di Unity.
Alat Uji Kesatuan
Ini seharusnya menjadi metode goto Anda, tetapi sebelum menggali bagaimana caranya, saya akan memeriksa alasannya.
Cara yang disukai untuk melakukan segala bentuk pengujian otomatisasi adalah dengan melakukan ini di lingkungan sedekat mungkin dengan produksi. Menggunakan sesuatu seperti Unity Test Tools (tinggal di dalam Unity Editor) terdengar seperti ide yang buruk bagi siapa saja yang menulis tes integrasi konvensional.
Mengapa? Karena dengan pengujian integrasi apa pun, Anda menginginkan jumlah barang ekstra paling sedikit yang menghalangi aplikasi Anda yang tidak ada ketika pengguna membukanya. Unity Editor mungkin memiliki kinerja atau perilaku yang berbeda dibandingkan dengan versi iOS (misalnya).
Jadi, mengapa menggunakan Unity Test Tools (UTT)?
Alasan utamanya adalah kenyamanan. Baik Unity Editor dan UTT dibangun agar mudah dan visual untuk digunakan. Anda akan memiliki waktu yang mudah menulis tes, mengaitkannya dengan permainan spesifik Anda, dan memahami ketika itu gagal.
Bagaimana dengan perbedaan perilaku antara Editor Persatuan dan produksi?
Bagaimanapun, Editor Persatuan adalah pembungkus aplikasi Anda. Itu artinya, akan ada beberapa perbedaan antara Editor dan produksi. Namun, pengujian integrasi samping, Editor Persatuan telah menjadi pembungkus untuk waktu yang sangat lama sekarang. Ini adalah platform yang matang dengan ribuan game dibangun di atasnya. Hasil yang Anda dapatkan dari menjalankan tes integrasi di dalam Editor akan sangat akurat.
Dalam skenario contoh yang Anda berikan, semuanya kecuali item pertama dapat dengan mudah dinyatakan menggunakan Unity Test Tools. Anda dapat membuka adegan dan memvalidasi perilaku seperti halnya tes integrasi lainnya.
Saya sarankan untuk menulis sebagian besar (jika tidak semua) tes Anda menggunakan UTT. Untuk menambahkan kompatibilitas dengan alat integrasi berkelanjutan (mis. Jenkins), Anda mungkin ingin menjalankannya dari konsol menggunakan argumen baris perintah .
Mulai aplikasi dan pengujian manual
Memulai aplikasi bukanlah sesuatu yang Anda miliki kontrol yang tepat saat berada di Unity Editor. Untuk memvalidasi aspek permainan Anda dan lainnya, Anda dapat menggunakan beberapa tes manual dasar.
Inilah cara untuk mendekati itu:
Alternatif
Tidak mengherankan, karena segala sesuatu terkait dengan Persatuan, kami memiliki lebih dari beberapa alternatif. Berikut beberapa yang mungkin ingin Anda pertimbangkan:
Bergantung pada skala dan ruang lingkup proyek Anda, Anda mungkin ingin menggunakan satu atau banyak opsi yang saya uraikan di atas.
sumber