Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
MSTest menyediakan siklus hidup yang terdefinisi dengan baik untuk kelas pengujian dan metode pengujian, memungkinkan operasi penyiapan dan teardown dilakukan pada berbagai tahap proses eksekusi pengujian. Siklus hidup dapat dikelompokkan ke dalam tiga tahap berikut:
- Siklus hidup tingkat perakitan
- Siklus hidup kelas
- Siklus hidup tingkat pengujian
Eksekusi peristiwa siklus hidup terjadi dari tingkat tertinggi (rakitan) ke tingkat terendah (metode pengujian). Urutan eksekusi adalah sebagai berikut:
- Inisialisasi Perakitan
- Inisialisasi Kelas (untuk setiap kelas pengujian)
- Inisialisasi pengujian (untuk setiap metode pengujian)
- Uji Eksekusi
- Pembersihan Pengujian (untuk setiap metode pengujian)
- Pembersihan Kelas (untuk setiap kelas pengujian)
- Pembersihan Unit Perakitan
Siklus Hidup Tingkat Perakitan
Siklus hidup perakitan menjelaskan siklus hidup seluruh perakitan, yang mencakup semua kelas dan metode pengujian. Untuk mengelola siklus hidup perakitan, MSTest menyediakan atribut AssemblyInitialize dan AssemblyCleanup . Untuk mempelajari selengkapnya tentang atribut ini, lihat dokumentasi AssemblyInitialize dan AssemblyCleanup .
Siklus Hidup tingkat kelas
Siklus hidup kelas pengujian mengacu pada siklus hidup kelas pengujian individual dalam perakitan dan dapat diimplementasikan menggunakan atribut ClassInitialize dan ClassCleanup . Atribut ini memungkinkan Anda menentukan metode penyiapan dan teardown yang dijalankan sebelum dan sesudah semua pengujian di kelas. Untuk informasi selengkapnya tentang atribut ini, lihat dokumentasi ClassInitialize dan ClassCleanup . Siklus hidup tingkat kelas hanya dijalankan sekali per kelas, terlepas dari jumlah pengujian di kelas.
Siklus Hidup Tingkat Pengujian
Siklus tingkat pengujian diimplementasikan pada setiap metode pengujian. Untuk pengujian berparameter, setiap set parameter diperlakukan sebagai metode pengujian terpisah, dan siklus hidup dijalankan untuk setiap set parameter. Siklus hidup tingkat pengujian dapat dikelompokkan ke dalam penyiapan, eksekusi, dan pembersihan, dengan penyiapan dan pembersihan yang dapat diimplementasikan dengan berbagai cara.
Pengaturan
Fase penyiapan siklus hidup tingkat pengujian bertanggung jawab untuk menyiapkan lingkungan pengujian sebelum eksekusi setiap metode pengujian. Ini dapat dicapai menggunakan TestInitialize
atribut atau dengan menerapkan konstruktor di kelas pengujian. Dalam kasus pewarisan, eksekusi TestInitialize
metode mengikuti urutan dari kelas dasar ke kelas turunan. Jika kelas pengujian mengimplementasikan konstruktor, kelas tersebut dijalankan sebelum TestInitialize
metode . Untuk mempelajari selengkapnya tentang TestInitialize
atribut , lihat dokumentasi atribut tingkat pengujian .
Nota
Tidak seperti konstruktor kelas, TestInitialize
metode dapat berupa asinkron dan juga mendukung penggunaan atribut seperti TimeoutAttribute
.
Eksekusi
Fase eksekusi adalah fase di mana metode pengujian aktual dijalankan. Jika metode pengujian mengembalikan Tugas atau ValueTask, metode pengujian akan ditunggu.
Peringatan
Dalam kasus metode pengujian asinkron, tidak ada SynchronizationContext yang disediakan. Ini tidak berlaku untuk UITestMethod
pengujian pada UWP dan WinUI karena berjalan pada utas UI yang memiliki SynchronizationContext.
Pembersihan
Fase pembersihan siklus hidup tingkat pengujian bertanggung jawab untuk membersihkan lingkungan pengujian setelah eksekusi setiap metode pengujian.
Ini dapat dicapai menggunakan TestCleanup
atribut atau dengan mengimplementasikan IDisposable
/IAsyncDisposable
antarmuka di kelas pengujian.
Jika kelas pengujian mengimplementasikan IDisposable
atau IAsyncDisposable
, metodenya Dispose
/DisposeAsync
dijalankan setelah TestCleanup
metode .
Dalam kasus pewarisan, eksekusi TestCleanup
metode mengikuti urutan dari kelas turunan ke kelas dasar.
Untuk mempelajari selengkapnya tentang TestInitialize
atribut , lihat dokumentasi atribut tingkat pengujian .
Pesanan
Urutan lengkap siklus hidup tingkat pengujian adalah sebagai berikut:
- Membuat objek kelas pengujian
- Atur
TestContext
properti jika ada - Jalankan TestInitialize (jika diimplementasikan)
- Pelaksanaan metode pengujian
- Perbarui
TestContext
dengan hasil pengujian (sepertiOutcome
properti) - Jalankan TestCleanup jika diimplementasikan
- Jalankan DisposeAsync jika diimplementasikan
- Jalankan Dispose jika telah diimplementasikan