Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Menjalankan Ujian Unit dengan Cekap dari Direktori Ujian Berasingan dalam Python?

Bagaimana Menjalankan Ujian Unit dengan Cekap dari Direktori Ujian Berasingan dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-27 03:04:13764semak imbas

How to Efficiently Run Unit Tests from a Separate Test Directory in Python?

Cara Menjalankan Ujian Unit dalam Struktur Direktori Ujian Biasa

Dalam Python, adalah amalan biasa untuk mengatur ujian unit dalam direktori ujian yang berasingan . Walau bagaimanapun, ini menimbulkan persoalan tentang cara melaksanakan ujian ini dengan cekap.

Masalah

Apabila cuba menjalankan python test_antigravity.py dari dalam direktori ujian, import modul antigraviti gagal kerana modul tidak berada di laluan. Mengubah suai PYTHONPATH atau menggunakan helah laluan carian lain mungkin boleh dilaksanakan, tetapi mereka tidak mempunyai kesederhanaan, terutamanya untuk pengguna yang hanya ingin mengesahkan keputusan ujian.

Penyelesaian

The pendekatan yang disyorkan ialah menggunakan antara muka baris arahan unittest. Kelas TestLoadernya menambah direktori yang diperlukan pada sys.path, menyelesaikan isu laluan.

Sebagai contoh, dalam struktur direktori seperti ini:

new_project
├── antigravity.py
└── test_antigravity.py

Anda boleh melaksanakan ujian dengan:

$ cd new_project
$ python -m unittest test_antigravity

Untuk struktur direktori seperti yang ada disediakan:

new_project
├── antigravity
│   ├── __init__.py
│   └── antigravity.py
└── test
    ├── __init__.py
    └── test_antigravity.py

Anda boleh mencapai kefungsian yang serupa dengan mengisytiharkan kedua-dua antigraviti dan ujian sebagai pakej dengan fail __init__.py. Dalam modul ujian, anda boleh mengimport pakej antigraviti dan modulnya seperti biasa.

Menjalankan Ujian Khusus

Untuk menjalankan modul ujian tunggal, seperti test_antigravity.py :

$ cd new_project
$ python -m unittest test.test_antigravity

Anda juga boleh menjalankan kes ujian individu atau kaedah:

$ python -m unittest test.test_antigravity.GravityTestCase
$ python -m unittest test.test_antigravity.GravityTestCase.test_method

Menjalankan Semua Ujian

Anda boleh menggunakan penemuan ujian untuk menjalankan semua ujian secara automatik. Ini memerlukan modul dan pakej ujian dinamakan test*.py (boleh disesuaikan melalui bendera -p atau --pattern):

$ cd new_project
$ python -m unittest discover

Untuk pengguna yang lebih suka kesederhanaan, anda boleh mengarahkan mereka menjalankan perkara berikut arahan:

To run the unit tests, do:
$ python -m unittest discover

Atas ialah kandungan terperinci Bagaimana Menjalankan Ujian Unit dengan Cekap dari Direktori Ujian Berasingan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn