Saya ingin memulai menulis tes unit untuk kode Python saya, dan py.test kerangka suara seperti taruhan yang lebih baik daripada Python dibundel unittest . Jadi saya menambahkan direktori "tes" ke proyek saya, dan menambahkan test_sample.py ke dalamnya. Sekarang saya ingin mengkonfigurasi PyCharm untuk menjalankan semua tes di direktori "tes" saya.
PyCharm diduga mendukung py.test dalam test runner-nya. Anda seharusnya dapat membuat konfigurasi run / debug untuk menjalankan tes Anda, dan PyCharm diduga memiliki kotak dialog "buat konfigurasi" khusus untuk py.test . Tapi itulah dokumentasi lengkap mereka tentang masalah ini, dan saya tidak dapat menemukan kotak dialog ini di mana pun.
Jika saya mengklik kanan direktori di jendela Project tool, saya seharusnya melihat item menu "Create <name>", tetapi satu-satunya item menu yang dimulai dengan "Create" adalah "Create Run Configuration". Oke, mungkin dokumentasinya salah, dan "Buat Konfigurasi Run" memang terdengar menjanjikan. Sayangnya, hanya dua item dalam submenu adalah "Unittests in C: \ mypath ..." dan "Doctests in C: \ mypath ...", yang keduanya tidak berlaku - Saya tidak menggunakan unittest atau doctest. Tidak ada item menu untuk py.test.
Jika saya membuka test_sample.py dan klik kanan di jendela editor, saya mendapatkan item menu "Buat <nama>" yang dijanjikan: ada "Buat 'Unittests di test_sa ...'...", diikuti oleh "Jalankan 'Unittests di test_sa ...' "dan" Debug 'Unittests di test_sa ...' ". Jadi sekali lagi, itu semua khusus untuk kerangka kerja yang paling bebas; tidak ada untuk py.test.
Jika saya mencoba item menu yang mengatakan "unittest", saya mendapatkan kotak dialog dengan opsi untuk "Name", "Type", kotak grup "Tests" dengan "Folder" dan "Pattern" dan "Script" dan "Class "dan" Fungsi ", dll. Ini terdengar persis seperti apa yang didokumentasikan sebagai dialog untuk menambahkan konfigurasi untuk Uji Unit Python , dan tidak seperti opsi" Nama "dan" Uji untuk menjalankan "dan" Kata Kunci "yang seharusnya muncul dalam konfigurasi untuk dialog py.test . Tidak ada di dalam dialog untuk mengganti kerangka uji mana yang saya tambahkan.
Saya menggunakan PyCharm 1.5.2 di Windows dengan Python 3.1.3 dan pytest 2.0.3. Saya berhasil menjalankan py.test
tes dari baris perintah, jadi ini bukan sesuatu yang sederhana seperti pytest yang tidak diinstal dengan benar.
Bagaimana cara mengkonfigurasi PyCharm untuk menjalankan tes py.test saya?
File | Settings | Tools | Python Integrated Tools
hanya tersedia di Pengaturan Proyek daripada Pengaturan Default di PyCharm 5.PyCharm 2017.3
Preference -> Tools -> Python integrated Tools
- Pilihpy.test
sebagaiDefault test runner
.Preference -> Languages&Frameworks -> Django
- Set centang padaDo not use Django Test runner
Run/Debug configuration
, jika tidak tes akan dijalankan dengan konfigurasi yang lebih lama.Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments
sumber
New => Python File
,Kind:
dropdown hanya menawarkan: file Python, Unit test, Python stub, bukan Pytest. Saya telah melihat semua lokasi yang disebutkan dalam utas di atas. Apa yang saya lewatkan?Saya pikir Anda perlu menggunakan item Konfigurasi Jalankan / Debug pada bilah alat. Klik dan 'Edit Konfigurasi' (atau gunakan item menu Run-> Edit Configurations). Di bagian 'Defaults' di panel kiri ada item 'py.test' yang saya pikir adalah yang Anda inginkan.
Saya juga menemukan bahwa manual tidak cocok dengan UI untuk ini. Semoga saya mengerti masalahnya dengan benar dan itu membantu.
sumber
Target
untuk menjadiScript ath
dan arahkan ke root folder tes sayaInilah cara saya membuatnya bekerja dengan pytest
3.7.2
(diinstal melalui pip) dan pycharms2017.3
:edit configurations
py.test
target
=python
dan bidang tanpa nama di bawah ketests
. Sepertinya ini adalah nama folder tes Anda. Tidak terlalu yakin tangguh. Saya juga merekomendasikan-s
argumen sehingga jika Anda men-debug tes Anda, konsol akan berperilaku baik. Tanpa argumen pytest menangkap output dan membuat buggy konsol debug.my_project/tests
).foobar_test.py
File saya : (tidak perlu impor):sumber
Sangat tidak terdokumentasi dengan pasti. Setelah Anda menambahkan konfigurasi baru dari default, Anda akan berada di ranah menjalankan skrip "/ Applications / PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py". Itu tidak didokumentasikan dan memiliki ide-ide argumen baris perintah.
Kamu bisa:
Anehnya, Anda akan kesulitan menemukan diskusi apa pun karena JetBrains melakukan pekerjaan yang baik untuk membom algoritma Google dengan halaman-halamannya sendiri.
sumber
temukan utas ini ketika saya mengenai pertanyaan yang sama dan temukan solusinya pycharm versi: 2017.1.2 buka "Preferences" -> "Tools" -> "Python Integrated Tools" dan atur test runner default dari panel sisi kanan sebagai py.test pecahkan masalah saya
sumber
Di pycharm 2019.2, Anda cukup melakukan ini untuk menjalankan semua tes:
Untuk integrasi yang lebih tinggi dari pytest ke pycharm, lihat https://www.jetbrains.com/help/pycharm/pytest.html
sumber
Saya menggunakan 2018.2
Saya Lakukan Jalankan -> Edit Konfigurasi ... Kemudian klik + di kiri atas dialog modal. Pilih "tes python" -> py.test Lalu saya beri nama seperti "All test with py.test"
Saya memilih Target: nama modul dan memasukkan modul di mana tes saya (yaitu 'tes' untuk saya) atau modul di mana semua kode saya adalah jika tes saya dicampur dengan kode saya. Ini membuatku tersandung.
Saya menetapkan juru bahasa Python.
Saya mengatur direktori kerja ke direktori proyek.
sumber
Dengan setup python Conda khusus yang termasuk instalasi pip untuk py.test plus penggunaan Specs addin (opsi --spec) (untuk Rspec seperti bahasa ringkasan pengujian yang bagus), saya harus melakukannya;
1.Edit py.test default untuk menyertakan opsi = --spec, yang berarti menggunakan plugin: https://github.com/pchomik/pytest-spec
2. Buat konfigurasi pengujian baru, menggunakan py.test. Ubah juru bahasa python-nya untuk menggunakan ~ / anaconda / envs / penerjemah pilihan Anda, mis. Py27 untuk namaku.
3. Hapus konfigurasi tes 'unittests'.
4. Sekarang konfigurasi uji standar adalah py.test dengan output gaya Rspec saya yang indah. Aku menyukainya! Terima kasih semuanya!
ps Jetbrains 'dalam menjalankan / men-debug konfigurasi ada di sini: https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test
sumber
Dengan 2018.3 tampaknya secara otomatis mendeteksi bahwa saya menggunakan pytest, yang bagus, tetapi masih tidak memungkinkan berjalan dari tingkat atas proyek. Saya harus menjalankan
pytest
untuk setiaptests
direktori secara individual.Namun, saya menemukan bahwa saya dapat memilih salah satu konfigurasi dan mengeditnya secara manual untuk dijalankan pada root proyek dan ini berhasil. Saya harus secara manual memilihnya di drop-down Konfigurasi - tidak dapat mengklik kanan pada folder root di panel Project. Tapi setidaknya itu memungkinkan saya untuk menjalankan semua tes sekaligus.
sumber
Aktifkan Pytest untuk proyek Anda
sumber