Bagikan melalui


Eksekusi Pengujian dengan Hot Reload

Uji coba di Visual Studio melibatkan pembangunan proyek untuk memperbarui biner pada disk sebelum menggunakan Platform Pengujian untuk menjalankan pengujian Anda. Waktu build di dalam Visual Studio dapat bervariasi bergantung pada jenis perubahan yang dibuat pada kode. Untuk solusi yang lebih besar, build dapat menjadi bagian paling mahal dari uji coba. Di Visual Studio 2022 dan yang lebih baru, eksekusi pengujian dengan hot reload dapat diaktifkan untuk mempercepat eksekusi pengujian dengan melompati build untuk skenario yang didukung.

Apa yang didukung?

  • Proyek C# dan VB yang menargetkan .NET 6.0 dan lebih tinggi
  • Proyek pengujian yang dibuat untuk konfigurasi DEBUG
  • Visual Studio 2022 dan lebih tinggi

Mengaktifkan Eksekusi Pengujian dengan Hot Reload

Aktifkan fitur ini dengan memilih Pengujian>Opsi>"(Eksperimental) Aktifkan Eksekusi Pengujian Hot Reloaded untuk proyek pengujian C# dan VB yang menargetkan .NET 6 dan lebih tinggi". Screenshot of the Enable Hot Reloaded Test Runs button on the Visual Studio Test Options page. When this is selected, tests execution will use hot reload for supported scenarios

Mengapa Eksperimental?

Ini adalah cara baru dalam eksekusi pengujian di mana kami mengubah jalur kode validasi yang banyak digunakan. Kami juga mengharapkan pengalaman pengguna seputar fitur ini berubah saat kami menerima lebih banyak umpan balik dari pengguna. Karena dua alasan ini, saat ini kami memberi label fitur ini sebagai "eksperimental".

Cara kerjanya

Setelah opsi diaktifkan, Test Explorer akan secara otomatis menggunakan eksekusi pengujian dengan hot reload jika memungkinkan. Jika hot reload tidak memungkinkan, itu akan kembali ke perilaku reguler membangun dan menjalankan tes. Sebagai pengguna yang menjalankan pengujian, Anda tidak perlu membuat perubahan apa pun pada alur kerja Anda (yaitu, terus mengedit kode dan menjalankan pengujian).

Di balik layar, kami menggunakan infrastruktur Edit dan Lanjutkan yang sama yang ada di pengalaman Hot Reload yang baru dirilis untuk mengedit kode C#/VB saat runtime untuk menentukan perubahan yang dibuat. Karena alasan ini, kami melakukan hot reload hanya ketika tidak ada "pengeditan kasar", dalam hal ini kami kembali untuk membangun pengujian Anda sebelum menjalankannya. Untuk detail selengkapnya tentang pengeditan yang didukung, baca dokumentasi Edit dan Lanjutkan

Seberapa cepat eksekusi pengujiannya?

Ada banyak variabel yang berperan saat memperkirakan berapa banyak waktu yang akan dihemat oleh fitur ini. Misalnya:

  • Berapa lama waktu yang dibutuhkan build proyek.
  • Jenis pengeditan apa yang dibuat.
  • Seberapa besar file tempat pengeditan dibuat.
  • Di mana pengeditan dilakukan (apakah itu proyek leaf atau bukan).

Pada akhirnya, peningkatan kecepatan akan secara langsung terkait dengan waktu build yang akan terjadi dalam uji coba spesifik tersebut.

Catatan

  • Uji coba pertama setelah mengaktifkan opsi atau membuka Visual Studio akan dikenakan build proyek.
  • File di editor mungkin tidak disimpan saat pengujian dijalankan. Untuk mengatasinya dan sebelum Anda cek masuk, pastikan Anda melakukan build penuh (Ctrl+Shift+B).
  • Biner pada disk tidak diperbarui saat eksekusi pengujian hot reloaded terjadi.
  • Eksekusi pengujian yang di-hot reload tidak berfungsi dengan "Pengujian>Jalankan Semua Pengujian", "Jalankan Semua Pengujian dalam Tampilan" di Test Explorer, juga tidak berfungsi dengan Jalankan Semua Pengujian dari node solusi di Penjelajah Solusi. Fitur tidak bekerja dengan perintah ini karena saat ini perintah menjamin membangun seluruh solusi.
  • Saat pengujian dengan kerangka kerja target yang tidak didukung (lebih rendah dari .NET 6.0) dijalankan, build proyek terjadi.
  • Jika Anda melihat inkonsistensi antara apa yang ada di disk dan apa yang ditunjukkan oleh Test Explorer, harap pertimbangkan pembuatan solusi/proyek menggunakan Ctrl+Shift+B lalu jalankan pengujian. Setiap build eksplisit menggantikan hasil pengujian hot reload dengan hasil pengujian build penuh reguler.

Masalah yang diketahui

  • Uji eksekusi dengan hot reload tidak terjadi dalam skenario berikut:
    • Cakupan Kode
    • Pengujian Unit Langsung
    • Pemrofilan
    • Awakutu
  • Jejak tumpukan mungkin tidak dapat dibaca dengan adanya token yang tidak dapat dibaca. Masalah ini sedang dilacak di sini dan direncanakan untuk perbaikan di .NET 7.0
    • Solusi yang disarankan dalam kasus ini adalah membangun proyek Anda dan menjalankan kembali pengujian.

Umpan balik Anda penting

Seperti yang disebutkan sebelumnya, agar fitur eksperimental ini lengkap, kami memerlukan umpan balik Anda. Jika Anda memiliki saran tentang bagaimana pengalaman tersebut seharusnya, atau mengalami masalah, harap luangkan waktu untuk melaporkan masalah kepada kami. Hanya dengan umpan balik Anda, kami dapat memastikan bahwa masalah kritis diselesaikan, dan keputusan di masa mendatang diprioritaskan berdasarkan masukan Anda.

Untuk menghubungi kami, harap gunakan mekanisme umpan balik Visual Studio.