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 di Windows diinstal dengan dukungan untuk beban kerja Python. Untuk informasi selengkapnya, lihat Menginstal dukungan Python di Visual Studio.
Proyek Python dengan kode atau folder dengan kode Python.
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:
Di Penjelajah Solusi, klik kanan nama proyek dan pilih Properti.
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, sepertitest*.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, sepertitest_*.py
.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.
Buka kode Python yang sudah ada dengan menggunakan opsi Buka Folder Lokal:
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:
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:
Klik kanan folder Pengaturan Lokal dan pilih Tambahkan>File Baru.
Beri nama file Python Pengaturan.json, dan pilih Enter untuk menyimpan perubahan Anda.
Visual Studio secara otomatis membuka file baru di editor.
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
danUnitTestPattern
pengaturan dalam file Python Pengaturan.json, Visual Studio secara otomatis menambahkan bidang ini dengan nilai.
default dantest*.py
, masing-masing.Untuk kerangka kerja pytest, opsi konfigurasi selalu ditentukan dalam file konfigurasi .ini pytest daripada melalui pengaturan Visual Studio.
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"]
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:
Buka proyek Python di Visual Studio.
Atur Properti kerangka kerja pengujian untuk proyek, seperti yang dijelaskan dalam Pilih kerangka kerja pengujian untuk proyek Python.
Di Penjelajah Solusi, klik kanan proyek dan pilih Tambahkan>Item Baru.
Dalam dialog Tambahkan Item Baru, pilih jenis file Uji Unit Python.
Masukkan nama file yang memenuhi definisi Pola yang Anda tentukan untuk properti proyek.
Pilih Tambahkan.
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 dariunittest.TestCase
metode . Saat Anda menjalankan skrip secara langsung, kode ini juga memanggilunittest.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:
Atur tampilan pengujian Anda dengan menggunakan opsi Kelompokkan Menurut pada toolbar:
Filter pengujian menurut nama dengan memasukkan teks di 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:
Pengujian yang gagal menunjukkan X merah dengan tautan Output yang menampilkan output dan
unittest
output konsol dari eksekusi pengujian:
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.
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.