Menulis pengujian unit untuk Python dengan Test Explorer di Visual Studio

Pengujian unit adalah potongan kode yang menguji unit kode lain dalam aplikasi, biasanya fungsi terisolasi, kelas, dan sebagainya. Ketika aplikasi melewati semua pengujian unitnya, Anda dapat yakin bahwa setidaknya fungsionalitas program tingkat rendah sudah benar.

Python menggunakan pengujian unit secara ekstensif untuk memvalidasi skenario saat merancang program. Dukungan Python dalam Visual Studio mencakup penemuan, eksekusi, dan penelusuran kesalahan pengujian unit dalam konteks proses pengembangan Anda, tanpa perlu menjalankan pengujian secara terpisah.

Artikel ini menyediakan kerangka singkat kemampuan pengujian unit di Visual Studio dengan Python. Untuk informasi selengkapnya tentang pengujian unit secara umum, lihat Pengujian unit kode Anda.

Prasyarat

Visual Studio untuk Mac tidak didukung. Untuk informasi selengkapnya, lihat Apa yang terjadi pada Visual Studio untuk Mac? Visual Studio Code di Windows, Mac, dan Linux berfungsi dengan baik dengan Python melalui ekstensi yang tersedia.

Pilih kerangka kerja pengujian untuk proyek Python

Visual Studio mendukung dua kerangka kerja pengujian untuk Python, unittest , dan pytest (tersedia di Visual Studio 2019 versi 16.3 dan yang lebih baru). Secara default, tidak ada kerangka kerja yang dipilih saat Anda membuat proyek Python.

Ikuti langkah-langkah ini untuk memilih kerangka kerja pengujian untuk proyek Python Anda:

  1. Di Penjelajah Solusi, klik kanan nama proyek dan pilih Properti.

  2. Di panel Properti proyek, pilih tab Uji dan pilih Jenis kerangka kerja Pengujian Anda:

    • Untuk kerangka kerja unittest, Visual Studio menetapkan direktori Root proyek untuk penemuan pengujian. Nilai defaultnya adalah ., tetapi Anda dapat menentukan lokasi yang berbeda saat mengonfigurasi pengaturan proyek. Anda juga dapat menentukan satu atau beberapa string untuk Pola nama file pengujian, seperti test*.py, test_*.py.

    • Untuk kerangka kerja pytest, opsi pengujian seperti lokasi pengujian dan pola nama file ditentukan dengan menggunakan file konfigurasi .ini pytest standar. Secara default, folder ruang kerja/proyek digunakan untuk lokasi. Pola nama file default mencakup test_*py dan *_test.py. Untuk informasi selengkapnya, lihat dokumentasi referensi pytest.

    Catatan

    Saat Anda menentukan pola nama file, perlu diingat bahwa karakter khusus seperti garis bawah (_) tidak cocok dengan kartubebas (*). Jika Anda ingin menggunakan karakter khusus dalam nama file, tentukan karakter ini dalam definisi pola, seperti test_*.py.

  3. Untuk menyimpan pilihan dan pengaturan kerangka kerja, Anda bisa menggunakan pintasan keyboard Ctrl+S .

Setelah Anda mengonfigurasi kerangka kerja, Visual Studio memulai penemuan pengujian dan membuka Test Explorer.

Mengonfigurasi pengujian untuk Python tanpa proyek

Visual Studio memungkinkan Anda menjalankan dan menguji kode Python yang ada tanpa proyek, dengan membuka folder dengan kode Python. Dalam skenario ini, Anda perlu menggunakan file Python Pengaturan.json untuk mengonfigurasi pengujian.

  1. Buka kode Python yang sudah ada dengan menggunakan opsi Buka Folder Lokal:

    Cuplikan layar yang memperlihatkan cara memilih opsi Buka folder lokal saat Visual Studio 2022 dimulai.

    Cuplikan layar yang memperlihatkan cara memilih opsi Buka folder lokal saat Visual Studio dimulai.

  2. Saat Anda membuka folder Python, Visual Studio membuat beberapa folder tersembunyi untuk mengelola pengaturan yang terkait dengan program. Untuk melihat folder ini (dan file dan folder tersembunyi lainnya, seperti folder .git) di Penjelajah Solusi, pilih opsi Perlihatkan Semua File:

    Cuplikan layar yang memperlihatkan cara menampilkan folder dan file tersembunyi di Penjelajah Solusi di Visual Studio 2022.

    Cuplikan layar yang memperlihatkan cara menampilkan folder dan file tersembunyi di Penjelajah Solusi di Visual Studio.

  3. Di Penjelajah Solusi, perluas folder Pengaturan Lokal, dan klik dua kali file Python Pengaturan.json untuk membuka file di editor.

    Catatan

    Sebagian besar konfigurasi menunjukkan dua file pengaturan: Python Pengaturan.json dan Project Pengaturan.json. Untuk latihan ini, Anda perlu memodifikasi file Python Pengaturan.json.

    Jika Anda tidak melihat file Python Pengaturan.json di folder Pengaturan lokal, Anda dapat membuatnya secara manual:

    1. Klik kanan folder Pengaturan Lokal dan pilih Tambahkan>File Baru.

    2. Beri nama file Python Pengaturan.json, dan pilih Enter untuk menyimpan perubahan Anda.

    Visual Studio secara otomatis membuka file baru di editor.

  4. Dalam file Python Pengaturan.json, tambahkan kode berikut untuk menentukan TestFramework. Atur nilai kerangka kerja ke pytest atau unittest tergantung pada kerangka kerja pengujian yang Anda inginkan:

    {
      "TestFramework": "unittest",
      "UnitTestRootDirectory": "testing",
      "UnitTestPattern": "test_*.py"
    }
    
    • Untuk kerangka kerja unittest, jika Anda tidak menentukan nilai tertentu untuk UnitTestRootDirectory dan UnitTestPattern pengaturan dalam file Python Pengaturan.json, Visual Studio secara otomatis menambahkan bidang ini dengan nilai . default dan test*.py, masing-masing.

    • Untuk kerangka kerja pytest, opsi konfigurasi selalu ditentukan dalam file konfigurasi .ini pytest daripada melalui pengaturan Visual Studio.

  5. Jika program Python Anda berisi folder src yang terpisah dari folder yang berisi pengujian Anda, tentukan jalur ke folder src dengan SearchPaths pengaturan dalam file Python Pengaturan.json:

      "SearchPaths": [".\\src"]
    
  6. Simpan perubahan Anda ke file Python Pengaturan.json.

Setelah Anda mengonfigurasi kerangka kerja, Visual Studio memulai penemuan pengujian untuk kerangka kerja yang ditentukan. Anda dapat mengakses pengujian di Test Explorer.

Menambahkan dan menemukan pengujian

Secara default, Visual Studio mengidentifikasi pengujian unittest dan pytest sebagai metode yang namanya dimulai dengan test.

Untuk melihat bagaimana Visual Studio memulai penemuan pengujian, ikuti langkah-langkah berikut:

  1. Buka proyek Python di Visual Studio.

  2. Atur Properti kerangka kerja pengujian untuk proyek, seperti yang dijelaskan dalam Pilih kerangka kerja pengujian untuk proyek Python.

  3. Di Penjelajah Solusi, klik kanan proyek dan pilih Tambahkan>Item Baru.

    1. Dalam dialog Tambahkan Item Baru, pilih jenis file Uji Unit Python.

    2. Masukkan nama file yang memenuhi definisi Pola yang Anda tentukan untuk properti proyek.

    3. Pilih Tambahkan.

  4. Visual Studio membuat file pengujian dengan kode default:

    import unittest
    
    class Test_test1(unittest.TestCase):
        def test_A(self):
            self.fail("Not implemented")
    
    if __name__ == '__main__':
        unittest.main()
    

    Kode ini mengimpor modul standar unittest dan memperoleh kelas pengujian dari unittest.TestCase metode . Saat Anda menjalankan skrip secara langsung, kode ini juga memanggil unittest.main() fungsi .

Saat Anda menambahkan file pengujian baru, Visual Studio membuatnya tersedia di Test Explorer.

Melihat pengujian dengan Test Explorer

Setelah Mengonfigurasi kerangka kerja pengujian dan file pengujian, Visual Studio mencari pengujian dan menampilkannya di Test Explorer.

Berikut adalah beberapa cara Anda dapat bekerja dengan Test Explorer:

  • Buka jendela Test Explorer dengan memilih Uji Penjelajah> Uji.

  • Saat jendela Test Explorer terbuka, gunakan pintasan keyboard CTRL+R, A untuk memicu penemuan pengujian.

  • Klik dua kali pengujian di Test Explorer untuk membuka file sumber yang sesuai di editor:

    Cuplikan layar yang memperlihatkan tampilan default untuk pengujian di Test Explorer di Visual Studio 2022.

    Cuplikan layar yang memperlihatkan tampilan default untuk pengujian di Test Explorer.

  • Atur tampilan pengujian Anda dengan menggunakan opsi Kelompokkan Menurut pada toolbar:

    Cuplikan layar yang memperlihatkan cara mengatur tampilan pengujian di Test Explorer dengan opsi Kelompokkan Menurut di Visual Studio 2022.

    Cuplikan layar yang memperlihatkan cara mengatur tampilan pengujian di Test Explorer dengan opsi Kelompokkan Menurut.

  • Filter pengujian menurut nama dengan memasukkan teks di bidang Pencarian :

    Cuplikan layar yang memperlihatkan cara memfilter tampilan pengujian di Test Explorer dengan menggunakan bidang Pencarian.

    Cuplikan layar yang memperlihatkan cara memfilter tampilan pengujian di Test Explorer dengan menggunakan bidang Pencarian.

  • Jalankan pengujian dan lihat status untuk uji coba, seperti yang dijelaskan di bagian berikutnya.

Untuk informasi selengkapnya tentang unittest modul dan pengujian penulisan, lihat dokumentasi Python.

Menjalankan pengujian dengan Test Explorer

Di Test Explorer, Anda dapat menjalankan pengujian dengan beberapa cara:

  • Pilih Jalankan Semua (pengujian dalam tampilan) untuk menjalankan semua pengujian yang ditampilkan dalam tampilan saat ini berdasarkan pengaturan filter Anda.
  • Gunakan perintah pada menu Jalankan untuk menjalankan pengujian yang gagal, diteruskan, atau tidak dijalankan sebagai grup.
  • Pilih satu atau beberapa pengujian, lalu klik kanan dan pilih opsi Jalankan Pengujian yang Dipilih.

Visual Studio menjalankan pengujian Anda di latar belakang. Test Explorer memperbarui status untuk setiap pengujian saat selesai:

  • Tes yang lolos menunjukkan tanda centang hijau dan waktu untuk menyelesaikan uji coba:

    Cuplikan layar yang memperlihatkan status untuk pengujian yang lulus di Test Explorer di Visual Studio 2022.

    Cuplikan layar yang memperlihatkan status untuk pengujian yang lulus di Test Explorer.

  • Pengujian yang gagal menunjukkan X merah dengan tautan Output yang menampilkan output dan unittest output konsol dari eksekusi pengujian:

    Cuplikan layar yang memperlihatkan detail status dan alasan untuk pengujian yang gagal di Test Explorer di Visual Studio 2022.

    Cuplikan layar yang memperlihatkan status untuk pengujian yang gagal di Test Explorer.

    Cuplikan layar yang memperlihatkan alasan pengujian gagal di Test Explorer.

Periksa pengujian dengan Debugger

Pengujian unit adalah potongan kode yang tunduk pada bug seperti kode lain dan kadang-kadang perlu dijalankan dalam debugger. Di Visual Studio Debugger, Anda dapat mengatur titik henti, memeriksa variabel, dan menelusuri kode. Visual Studio juga menyediakan alat diagnostik untuk pengujian unit.

Tinjau poin-poin ini tentang memeriksa pengujian Anda dengan Visual Studio Debugger:

  • Secara default, penelusuran kesalahan pengujian menggunakan debugger debugpy untuk Visual Studio 2019 versi 16.5 dan yang lebih baru. Beberapa versi Visual Studio sebelumnya menggunakan debugger ptvsd 4 . Jika Anda menggunakan versi Visual Studio yang lebih lama dan lebih memilih debugger ptvsd 3, pilih opsi Gunakan Debugger Warisan di bawah Opsi>Alat>Penelusuran Kesalahan Python.>

  • Untuk memulai penelusuran kesalahan, atur titik henti awal dalam kode Anda, lalu klik kanan pengujian (atau pilihan) di Test Explorer dan pilih Debug Pengujian yang Dipilih. Visual Studio memulai debugger Python seperti halnya untuk kode aplikasi.

    Cuplikan layar yang menunjukkan cara men-debug pengujian unit dengan Visual Studio 2022 Debugger.

    Cuplikan layar yang memperlihatkan cara men-debug pengujian unit dengan Visual Studio Debugger.

  • Jika mau, Anda dapat menggunakan Cakupan Analisis Kode untuk Pengujian yang Dipilih. Untuk informasi selengkapnya, lihat Menggunakan cakupan kode untuk menentukan berapa banyak kode yang diuji.