Saya menyelesaikan proyek pertama saya dengan Python dan sekarang tugas saya adalah menulis tes untuk itu.
Karena ini adalah pertama kalinya saya melakukan proyek, ini adalah pertama kalinya saya akan menulis tes untuk itu.
Pertanyaannya adalah, bagaimana saya memulai? Saya sama sekali tidak tahu. Adakah yang bisa mengarahkan saya ke beberapa dokumentasi / tutorial / tautan / buku yang dapat saya gunakan untuk memulai dengan tes menulis (dan saya kira pengujian unit khususnya)
Saran apa pun akan disambut pada topik ini.
python
unit-testing
testing
pengguna225312
sumber
sumber
Jawaban:
Jika Anda baru menggunakan unittests, pendekatan paling sederhana untuk belajar seringkali adalah yang terbaik. Atas dasar itu saya sarankan menggunakan
py.test
daripada modul defaultunittest
.Perhatikan dua contoh ini, yang melakukan hal yang sama:
Contoh 1 (belum dikirim):
Contoh 2 (pytest):
Dengan asumsi bahwa kedua file tersebut dinamai
test_unittesting.py
, bagaimana kita menjalankan tes?Contoh 1 (belum dikirim):
Contoh 2 (pytest):
sumber
unit-test
masih disertakan dalam perpustakaan standar, jikapy.test
dannose
menyediakan fungsionalitas yang sama dengan antarmuka yang lebih sederhana? Apakah hanya untuk memberikan kompatibilitas, atau apakahunittest
memiliki beberapa kelebihan yangpy.test
dannosetest
tidak dapat memberikan?unittest
Paket standar masih cukup bagus. Ini adalah standar yang artinya dijamin bekerja dengan baik. Akhirnya, siapa pun yang menggunakan kode Anda tidak perlu menginstal paket tambahan.Buku Python gratis Dive Into Python memiliki bab tentang pengujian unit yang mungkin berguna bagi Anda.
Jika Anda mengikuti praktik modern Anda mungkin harus menulis tes saat Anda sedang menulis proyek Anda, dan tidak menunggu sampai proyek Anda hampir selesai.
Agak terlambat sekarang, tetapi sekarang Anda tahu untuk waktu berikutnya. :)
sumber
Menurut pendapat saya, ada tiga kerangka pengujian python yang bagus untuk dilihat.
unittest - modul hadir standar dengan semua
hidung distribusi python - dapat menjalankan tes unittest, dan memiliki lebih sedikit boilerplate.
pytest - juga menjalankan tes unittest, memiliki pelat yang lebih sedikit, pelaporan yang lebih baik, banyak fitur ekstra keren
Untuk mendapatkan perbandingan yang baik dari semua ini, baca pengantar masing-masing di http://pythontesting.net/start-here .
Ada juga artikel tambahan tentang perlengkapan, dan banyak lagi di sana.
sumber
Dokumen unittest akan menjadi tempat yang baik untuk memulai.
Juga, ini agak terlambat sekarang, tetapi di masa depan tolong pertimbangkan untuk menulis tes unit sebelum atau selama proyek itu sendiri. Dengan begitu Anda dapat menggunakannya untuk menguji saat Anda melanjutkan, dan (secara teori) Anda dapat menggunakannya sebagai tes regresi, untuk memverifikasi bahwa perubahan kode Anda belum merusak kode yang ada. Ini akan memberi Anda manfaat penuh dari menulis test case :)
sumber
unittest
. Setelah saya memahami berbagai hal, saya akan menggunakannya lebih banyak untuk pengembangan, serta meningkatkan jumlah test case untuk setiap unit.Unittest hadir dengan perpustakaan standar, tetapi saya akan merekomendasikan Anda nosetests .
" Hidung meluas unittest untuk membuat pengujian lebih mudah. "
Saya juga merekomendasikan Anda pylint
" Menganalisis kode sumber Python mencari bug dan tanda-tanda berkualitas buruk. "
sumber
Seperti yang sudah dijawab orang lain, sudah terlambat untuk menulis unit test, tetapi belum terlambat. Pertanyaannya adalah apakah kode Anda dapat diuji atau tidak. Memang, tidak mudah untuk menguji kode yang ada, bahkan ada sebuah buku tentang ini: Bekerja Secara Efektif dengan Kode Legacy (lihat poin-poin kunci atau prekursor PDF ).
Sekarang menulis unit tes atau tidak adalah panggilan Anda. Anda hanya perlu menyadari bahwa itu bisa menjadi tugas yang membosankan. Anda mungkin menangani ini untuk mempelajari pengujian unit atau mempertimbangkan untuk menulis tes penerimaan (ujung-ke-ujung) terlebih dahulu, dan mulai menulis tes unit ketika Anda akan mengubah kode atau menambahkan fitur baru ke proyek.
sumber
nosetests adalah solusi brilian untuk pengujian unit dengan python. Ini mendukung kedua testcases dan dokumen berdasarkan unittest, dan membuat Anda mulai dengan hanya file konfigurasi sederhana.
sumber
nose
dannose2
dalam mode pemeliharaan. Lebih baik untuk memulainyapy.test
karena memiliki lebih banyak dukungan