Gambaran umum pengujian GitHub Copilot untuk .NET

Pengujian GitHub Copilot untuk .NET adalah kemampuan dalam GitHub Copilot Chat yang diintegrasikan ke dalam Visual Studio. Fitur ini mengotomatiskan pembuatan, berjalan, dan pengujian kode C# untuk seluruh proyek, solusi, file, kelas, atau anggota. Ini dirancang untuk pengembang C# yang ingin dengan cepat menginisiasi cakupan pengujian yang komprehensif tanpa harus menulis setiap kasus pengujian secara manual. Pengujian GitHub Copilot dapat menghasilkan pengujian untuk kerangka kerja pengujian xUnit, NUnit, dan MSTest.

Tidak seperti perintah satu kali dalam mode agen Copilot, pengujian GitHub Copilot untuk .NET menawarkan pengalaman jangka panjang terpandu yang dirancang khusus untuk pembuatan pengujian. Ini menghasilkan hasil deterministik yang didasarkan pada kompilator C# dan semantik bahasa, dengan pemahaman mendalam tentang basis kode Anda, struktur file, dan konvensi pengujian untuk memastikan pengujian yang dapat diprediksi dan sesuai konteks.

Prasyarat

Nota

Pengujian GitHub Copilot untuk .NET memerlukan langganan GitHub Copilot berbayar (individu, bisnis, atau perusahaan). Langganan Copilot gratis tidak didukung.

Mengapa menggunakan pengujian GitHub Copilot untuk .NET?

Pengujian GitHub Copilot untuk .NET menawarkan pengalaman komprehensif dibandingkan dengan kemampuan Copilot yang lebih umum yang terkait dengan pembuatan pengujian. Kemampuan pengujian unit di GitHub Copilot untuk .NET menyediakan hal berikut:

  • Efisiensi: Buat, bangun, dan jalankan pengujian unit C# secara otomatis untuk proyek atau solusi besar atau kecil.
  • Konsistensi: Pastikan pengujian mengikuti praktik terbaik dan standar proyek. Pengujian dibuat dalam proyek pengujian terpisah dalam solusi dan dihasilkan menggunakan kerangka kerja xUnit, NUnit, dan MSTest. Jika solusi sudah memiliki pengujian unit di NUnit atau xUnit, pengujian GitHub Copilot untuk .NET menghasilkan pengujian baru dalam kerangka kerja pengujian unit yang sama. Jika tidak ada pengujian unit dalam solusi, pengujian baru dihasilkan menggunakan MSTest.
  • Integrasi: Bekerja dengan mulus dalam Visual Studio, memanfaatkan kemampuan AI Copilot.
  • Prediktabilitas: Copilot menghasilkan tes secara deterministik, didasarkan pada kompilator C# dan semantik bahasa, sehingga asersi dan kasus batas dapat diprediksi serta aman jenisnya.

Fitur utama

  • Pembuatan pengujian otomatis dalam skala besar: Buat pengujian untuk satu file, beberapa file dalam satu proyek, atau seluruh solusi.
  • Interaksi berbasis perintah: Gunakan perintah dan parameter yang didukung (tercantum dalam pesan dalam /help pengujian GitHub Copilot).
  • Permintaan fleksibel: Targetkan kode tertentu menggunakan sintaks terstruktur @Test #<target> , atau gunakan perintah bahasa alami bentuk bebas untuk menjelaskan apa yang ingin Anda uji.

Apa yang dapat dilakukan pengujian GitHub Copilot

Saat Anda mengaktifkan kemampuan ini, pengujian GitHub Copilot berinteraksi dengan solusi Anda dalam beberapa cara untuk menghasilkan dan memvalidasi pengujian:

  • Membaca: Copilot menganalisis kode sumber dan struktur proyek Anda untuk memahami konteks dan dependensi.
  • Menulis: Ini membuat atau memperbarui file pengujian dalam solusi Anda berdasarkan sarannya.
  • Membangun: Alat ini memicu build untuk mengkompilasi kode Anda dan memverifikasi bahwa pengujian yang dihasilkan terintegrasi dengan benar.
  • Menjalankan: Ini menjalankan pengujian untuk memastikan bahwa pengujian tersebut berhasil dan memberikan umpan balik tentang cakupan dan kualitas.

Penting

Pengujian Copilot tidak memodifikasi kode produksi di luar proses pembuatan pengujian. Semua perubahan terjadi dalam lingkungan pengembangan lokal Anda, dan Anda mempertahankan kontrol penuh untuk meninjau, menerima, atau membuang saran.

Tindakan yang diambil oleh @Test agen

Agen @Test melakukan berbagai tindakan selama pembuatan pengujian. Memahami tindakan ini membantu Anda mengetahui apa yang diharapkan saat menggunakan alat ini.

Membangun dan menguji operasi

Agen menggunakan VISUAL Studio API (bukan alat baris perintah seperti dotnet restore atau dotnet test) untuk melakukan operasi berikut:

  • Pulihkan dan bangun: Memulihkan paket dan membangun proyek berdasarkan cakupan (dari satu proyek hingga seluruh solusi).
  • Jalankan pengujian: Terutama hanya menjalankan pengujian yang dihasilkan. Namun, untuk menghitung cakupan kode awal dan yang dihasilkan (dan untuk mode pengoptimalan cakupan), agen menjalankan semua pengujian dalam cakupan yang diberikan.
  • Proses git diff: Saat menggunakan mode diff (#git_changes), agen menganalisis perubahan yang belum dikomit untuk menghasilkan pengujian yang ditargetkan.

Penginstalan paket

Agen menginstal paket NuGet sesuai kebutuhan:

  • Uji paket kerangka kerja (MSTest, NUnit, atau xUnit)
  • Paket kerangka kerja tiruan jika belum ada
  • Cakupan dan ekstensi TRX untuk Microsoft Test Platform (MTP) jika belum tersedia

Operasi LLM

Agen melakukan panggilan LLM untuk:

  • Analisis petunjuk bentuk bebas
  • Pemrosesan ringkasan
  • Pembuatan pengujian

Modifikasi proyek dan file

Agen membuat proyek uji jika belum ada untuk kode target.

Agen menggunakan sistem file kustom dengan jaminan berikut:

  • Cakupan: Agen tidak pernah membaca atau menulis file di luar akar repositori (kecuali untuk log).
  • Preferensi baca-saja: Jika memungkinkan, agen menggunakan sistem file baca-saja yang mencegah tindakan tulis.

Agen dapat menulis ke file berikut:

  • Menguji file proyek
  • File proyek sumber (misalnya, menambahkan InternalsVisibleTo atribut)
  • File solusi (secara tidak langsung melalui VISUAL Studio API, seperti saat menambahkan proyek)
  • Menguji file sumber

Pertimbangan keamanan

Ketika Anda pertama kali menjalankan pengujian GitHub Copilot untuk .NET, Copilot meminta persetujuan Anda untuk menjalankan kode yang dihasilkan LLM di komputer Anda. Ini mungkin termasuk tindakan seperti menginstal atau memulihkan paket NuGet dan menjalankan pengujian. Jika Anda tidak memberikan persetujuan umum, pengujian GitHub Copilot akan meminta persetujuan eksplisit sebelum melakukan operasi tersebut.

Perhatian

Persetujuan Anda memberi Copilot kemampuan untuk secara diam-diam memanggil perintah arbitrer dalam sesi Visual Studio Anda. Microsoft tidak dapat menjamin keamanan perintah ini. Anda hanya boleh mengaktifkan sakelar ini di lingkungan sandbox, dan Anda harus mengambil langkah-langkah untuk membatasi hak istimewa yang tersedia untuk lingkungan tersebut. Misalnya, lingkungan sandbox tidak boleh menggunakan akun yang terhubung ke cloud untuk log masuk ke Windows, dan lingkungan sandbox tidak boleh log masuk ke Visual Studio menggunakan akun GitHub istimewa yang memiliki akses baca ke repositori non-publik atau akses tulis ke repositori produksi.

Langkah selanjutnya

Lihat Membuat dan menjalankan pengujian menggunakan pengujian GitHub Copilot untuk .NET di Visual Studio.