Jika Python Test Explorer di VS Code tidak menemukan pengujian, melaporkan kesalahan impor, atau tampaknya mencari folder yang salah di macOS, periksa direktori kerja pengujian Python dan argumen kerangka kerja terlebih dahulu. Atur python.testing.cwd ke direktori yang diharapkan oleh perintah pengujian Anda, lalu segarkan penemuan pengujian dan periksa log output Python. Untuk unittest, periksa juga argumen direktori awal -s yang terpisah; mengubah cwd tidak menggantikan pengaturan tersebut.
Memastikan direktori mana yang digunakan VS Code
Buka Test Explorer dan jalankan Test: Refresh Tests dari Command Palette (⇧⌘P). Jika penemuan pengujian gagal, buka View > Output, pilih Python dari menu saluran output, dan baca entri penemuan terbaru. Ekstensi Python mengirimkan kesalahan penemuan ke log ini, yang dapat membantu membedakan masalah path dari kerangka kerja yang hilang atau kesalahan sintaksis. VS Code mendokumentasikan langkah-langkah penemuan dan pencatatan log ini.
Periksa folder mana yang terbuka di jendela VS Code. Dalam ruang kerja folder tunggal (single-folder workspace), ruang kerja biasanya merupakan akar proyek (project root). Jika Anda membuka folder induk repositori, atau ruang kerja multi-akar (multi-root workspace), path relatif mungkin diselesaikan dari akar yang berbeda dari yang Anda perkirakan. Direktori terminal saat ini tidak cukup untuk memastikan direktori yang digunakan oleh ekstensi; lihat output penemuan dan pengaturan ruang kerja. Dalam ruang kerja multi-akar, VS Code mengizinkan pengaturan khusus folder, dan ${workspaceFolder} merujuk ke folder yang terkait dengan pengaturan tersebut. Panduan ruang kerja VS Code menjelaskan folder multi-akar, dan referensi variabelnya mencakup path dengan cakupan folder.
Mengatur direktori kerja pengujian Python
Misalnya, jika Anda membuka akar repositori tetapi perintah pengujian Anda harus dijalankan dari subfolder backend-nya, buka pengaturan ruang kerja di Mac dengan ⇧⌘P dan pilih Preferences: Open Workspace Settings (JSON). Tambahkan atau gabungkan kunci ini ke dalam objek JSON yang ada:
{
"python.testing.cwd": "${workspaceFolder}/backend"
}
Gunakan direktori sebenarnya untuk proyek Anda. Jika pengujian harus dijalankan di akar ruang kerja, Anda dapat mengabaikan pengaturan ini atau mengaturnya ke ${workspaceFolder}. Hindari nilai relatif polos seperti backend jika Anda tidak yakin dari akar mana nilai tersebut relatif; variabel ruang kerja eksplisit membuat basis yang dituju lebih jelas. Pengaturan ruang kerja menimpa pengaturan pengguna, jadi periksa kedua cakupan jika perubahan Anda tampaknya tidak efektif. VS Code menyimpan pengaturan ruang kerja folder tunggal di .vscode/settings.json; gunakan tab Workspace pada editor Settings untuk meninjau nilai yang aktif. Pengaturan ruang kerja dan tingkat prioritasnya dijelaskan dalam dokumentasi pengaturan VS Code.
Pengaturan cwd pada ekstensi Python bersifat opsional. Dokumentasinya menyatakan bahwa mengaturnya juga akan menyesuaikan --rootdir milik pytest; rootdir adalah konfigurasi akar proyek pytest, jadi jangan menganggapnya dapat dipertukarkan dengan argumen pencarian pengujian pada setiap kerangka kerja. Referensi pengaturan pengujian Python mengidentifikasi perilaku pytest ini.
Memeriksa argumen penemuan khusus kerangka kerja
Untuk pytest, tinjau python.testing.pytestArgs untuk memastikan tidak ada path yang mengarah ke tempat yang tidak diharapkan. Path seperti tests memberi tahu pytest apa yang harus dikumpulkan, sedangkan python.testing.cwd menetapkan konteks direktori kerja. Pertahankan hanya argumen yang dibutuhkan proyek Anda, dan pastikan path konsisten dengan konteks tersebut. Setelah mengedit, jalankan Test: Refresh Tests kembali. Ekstensi ini menemukan file pytest yang cocok dengan konvensinya di bawah folder saat ini dan subfoldernya; penemuan masih bisa gagal karena alasan yang tidak terkait dengan cwd, termasuk instalasi pytest yang tidak tersedia atau kesalahan pada file pengujian. Panduan pengujian resmi mencantumkan perilaku penemuan dan pelaporan kegagalan umum.
Untuk unittest, periksa python.testing.unittestArgs secara terpisah. Argumen default-nya mencakup -s ., di mana -s memilih direktori awal. Jika pengujian berada di bawah backend/tests dan cwd adalah akar repositori, konfigurasikan direktori awal sebagaimana mestinya, misalnya:
{
"python.testing.cwd": "${workspaceFolder}",
"python.testing.unittestEnabled": true,
"python.testing.pytestEnabled": false,
"python.testing.unittestArgs": ["-v", "-s", "backend/tests", "-p", "*test*.py"]
}
Ini adalah contoh untuk proyek yang menggunakan unittest; jangan menyalinnya tanpa perubahan jika kerangka kerja atau penamaan file Anda berbeda. unittest juga mengharuskan file pengujian yang ditemukan berupa modul atau paket yang dapat diimpor (importable). Jika log menunjukkan kesalahan importabilitas dalam subfolder pengujian, periksa struktur paketnya; VS Code mencatat bahwa file __init__.py dapat membuat folder tersebut dapat diimpor. Panduan resmi menjelaskan opsi -s dan -p milik unittest.
Menyegarkan dan mengisolasi kegagalan yang tersisa
Setelah mengubah pengaturan, jalankan Test: Refresh Tests kembali. Jika VS Code masih menggunakan lingkungan yang tidak diharapkan, jalankan Python: Select Interpreter dan pilih lingkungan tempat kerangka kerja pengujian Anda terinstal; interpreter yang dipilih digunakan untuk fitur-fitur Python termasuk pengujian. Panduan lingkungan Python VS Code menjelaskan pemilihan interpreter.
Jika output masih menampilkan path yang salah, bandingkan direktori kerja yang tercatat di log dengan akar ruang kerja dan argumen pengujian yang dikonfigurasi. Jika path sudah benar tetapi penemuan gagal, ikuti kesalahan yang sebenarnya: periksa instalasi kerangka kerja, kesalahan impor, kesalahan sintaksis, dan pola nama file pengujian. Penyesuaian cwd tidak dapat memperbaiki masalah-masalah independen tersebut. Jika proyek yang dikonfigurasi dengan benar masih mencatat path yang tidak konsisten atau mengabaikan pengaturan, rekam output Python dan pengaturan yang relevan saat melaporkan masalah ini; tidak ada perintah universal di VS Code yang memaksa setiap kerangka kerja pengujian untuk menggunakan direktori yang berbeda.
Sumber
Python testing in Visual Studio Code — Microsoft
User and workspace settings — Microsoft
Multi-root Workspaces — Microsoft
Variables Reference — Microsoft
Python environments in VS Code — Microsoft