Menjalankan Ujian Unit dengan Struktur Direktori Biasa
Struktur modul biasa Python selalunya melibatkan pengasingan ujian unit ke dalam direktori ujian khusus, seperti yang dilihat di bawah :
new_project/ antigravity/ antigravity.py test/ test_antigravity.py setup.py etc.
Menjalankan ujian ini memerlukan lebih daripada sekadar melaksanakan python test_antigravity.py daripada direktori ujian. Memandangkan antigraviti tiada pada laluan import, pendekatan ini akan gagal.
Sebaliknya, cara paling mudah untuk menjalankan ujian ialah menggunakan antara muka baris arahan unittest. Utiliti ini akan menambah direktori secara automatik ke sys.path, menjadikan modul boleh diakses untuk diimport.
Untuk struktur direktori seperti:
new_project ├── antigravity.py └── test_antigravity.py
Jalankan ujian seperti berikut:
$ cd new_project $ python -m unittest test_antigravity
Untuk struktur seperti anda, dengan pakej dalam kedua-dua antigraviti dan direktori ujian, anda boleh mengimport modul dalam antigraviti seperti biasa dalam ujian modul:
# import the package import antigravity # import the antigravity module from antigravity import antigravity # or an object inside the antigravity module from antigravity.antigravity import my_object
Menjalankan Ujian Khusus:
Untuk menjalankan modul ujian tertentu (cth., test_antigravity.py):
$ cd new_project $ python -m unittest test.test_antigravity
Anda juga boleh menjalankan satu kes ujian atau kaedah:
$ python -m unittest test.test_antigravity.GravityTestCase $ python -m unittest test.test_antigravity.GravityTestCase.test_method
Menjalankan Semua Ujian:
Gunakan penemuan ujian untuk menemui dan menjalankan semua ujian secara automatik:
$ cd new_project $ python -m unittest discover
Ini akan dilaksanakan semua modul test*.py dalam pakej ujian. Untuk maklumat lanjut, rujuk dokumentasi rasmi tentang penemuan.
Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Ujian Unit dengan Berkesan dalam Python dengan Struktur Direktori Standard?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!