Pertanyaan Di mana proyek nyata python digunakan sebagai contoh untuk unit-test part?


Saya mencari proyek python untuk digunakan sebagai contoh untuk menyalin desain bagian uji unit.

Proyek harus memiliki fitur-fitur ini:

  1. kode hampir sepenuhnya diuji unit
  2. kode didistribusikan dalam banyak paket, ada lebih dari satu tingkat paket
  3. semua tes dapat dijalankan dengan satu perintah, misalnya dengan python test.py

Saya perlu bahwa proyek harus menggunakan konvensi tes yang sama untuk semua kode yang terkandung. Saya melihat keseluruhan proyek python tetapi berbagai paket diuji dengan berbagai konvensi. Misalnya paket setuptools menggunakan ad hoc adaptasi dari perpustakaan unittest sementara paket-paket lain tidak.

Saya perlu bahwa proyek tidak menggunakan kerangka pengujian ad-hoc atau yang sangat disesuaikan, karena saya ingin menggunakan kembali arsitektur uji dalam proyek saya.


5
2017-12-17 13:05


asal


Jawaban:


Mungkin Hidung diri?


4
2017-12-17 13:23



Django adalah proyek bersih yang memiliki berbagai pengujian unit yang bagus.

Coba lihat bagaimana mereka mengusulkan Anda menguji proyek Anda sendiri.

Coba lihat pada kode pengujian unit dari kerangka itu sendiri.


4
2017-12-20 03:43



Yah, spesifikasi Anda menunjuk langsung pada proyek open source yang agak terkenal, yang Perpustakaan Python. Silahkan lihat python / trunk / Lib / test / regrtest.py, yang akan menemukan semua modul yang namanya "test_ *" di direktori uji, dan jalankan mereka.


1
2017-12-17 13:27



Pertama, baca tentang unittest. Dokumentasi berisi contoh.

Kedua, karena Anda menginginkan paket (bukan modul) daftarnya lebih pendek. Ada 15 paket dalam distribusi Python 2.5. Pilih Satu Secara Acak. Inilah bagian yang mungkin memenuhi beberapa kriteria Anda.

  • bsddb: 7 modul - banyak pengujian - test_all.py

  • ctypes: 4 modul - tes - runtests.py

  • distutils: banyak modul - tes - test_dist.py

  • email: banyak modul - tes - test_email.py

  • sqlite3 - 2 modul - tes - (tidak jelas apakah ada tes keseluruhan, saya bosan mencari)


0
2017-12-17 13:33



Anda dapat memeriksa sumber python. Sebagian besar ditulis dengan python. khususnya modul unittest.

<rant> python module organization dan unittest khususnya adalah seni hitam. Ini mengingatkan saya pada campuran perl (aneh, solusi tidak terdokumentasi untuk setiap hal dasar - manual yang tidak menarik bahkan tidak pernah menunjukkan cara mengimpor modul eksternal) dan java (direktori terbatas dan konvensi penamaan) </ rant>

lihat pengaturan tes unit untuk modul unittest. (tidak ada pencarian sumber, Anda harus hg clone url itu)

di sini adalah bagian setup.py untuk menendang unittests, selain sisanya di sana:

# above here, juggle paths
from setuptools import setup
params['entry_points'] = {
    'console_scripts': [
        'unit2 = unittest2.__main__:main_',
    ],
}

params['test_suite'] = 'unittest2.collector'

setup(**params)

dan bahkan semua yang mereka lakukan masih belum cukup untuk dijalankan setup.py test. Anda akan belajar bahwa sebagian besar tim sudah menyerah memiliki apa yang Anda minta dan hanya menambahkan test_run.py atau semacam itu ke proyek. Saya tahu semua proyek yang saya sumbangkan lakukan.

Lihatlah juga jawaban hidung di atas, itu bagus, setup.py mereka sangat bersih meskipun beberapa dukungan 2, 3, 2to3 menggila. itu adalah sebuah proyek yang bertujuan untuk membuat unittest (dan pengujian umum) lebih mudah dan lebih nyaman. baik, bahkan mereka punya selftest.pyskrip di akar proyek untuk mencoba menendang tes.


0
2017-09-08 04:49