Үлкен жобаны әзірлеу кезінде кодтың сынақтан өтуі қажет кейбір бөліктерін кездейсоқ ұмытып кету мүмкін. Coverage.py - бұл сізге көмектесетін питон құралы.
Орнату
Қалауыңызша pip немесе easy_install пайдаланыңыз
pip install coverage
Бастау және жою
Django жобасында іске қосу үшін пәрменді пайдаланыңыз:
overage run --source='.' manage.py test the-app-you-want-to-test
Бұл пәрмен COVERAGE_FILE ішінде орналасқан ".coverage" толтырады, содан кейін сіз нәтижелерді немесе есепті көре аласыз. Алынған деректерді жою қажет болса, пәрменді пайдаланыңыз:
coverage erase
Бір файл үшін
Егер сіз тек Python кодын сынағыңыз келсе, мынаны орындауыңыз керек:
coverage run your_program.py arg1 arg2 arg3
сілтеме
арқылы қарауға болатын бірнеше қосымша опциялар бар.
Үлгілер туралы [плагиндер бөлімінде] біле аласыз (https://coverage.readthedocs.io/en/coverage-4.3.4/plugins.html).
Нәтижені көру
Нәтижелерді пәрмен жолында көрсеткіңіз келсе:
coverage report
Неғұрлым түсінікті және ыңғайлы есептер үшін:
coverage html
Кодтың қандай бөлігі сынақтармен қамтылғанын білу үшін келесі пәрменді пайдаланыңыз:
coverage annotate -d directory-where-to-put-annotated-files
Бағдарлама қосымша синтаксиспен бірдей бастапқы код файлын жасайды:
- «>» белгісі бар жол оның орындалғанын білдіреді.
- «!» әрпінен басталатын жол оның орындалмағанын білдіреді.
- «-» әрпінен басталатын жол бұл жолдың қамту статистикасынан алынып тасталғанын білдіреді.
Қамтудың жақсы деңгейі
Жақсы қамту әдетте 90% құрайды. Алайда, егер нәтиже 100% болса, бұл нашар сигнал болуы мүмкін, өйткені бұл сынақтардың сапасы емес, қамту мәселесі болуы мүмкін.
Бірнеше кеңестер:
- Тесттеріңіздің сапасына абай болыңыз.
- Қамту үшін әзірлеушінің жылдамдығын төмендетпеңіз.
- Тексерілмеген кодты табу және оның қамтуға лайық екенін анықтау үшін қамтуды пайдаланыңыз.
Кодты алып тастау
Кейде біз қамтуды қажет етпейтін кейбір кодты алып тастауымыз керек. Бірнеше нұсқа бар:
- .coveragerc ішінде алып тастау және өткізіп жіберу үшін файлдарды көрсету.
- Түсініктеме блогының бір жолына жазу.
# pragma: no cover
Мысалы, жасалған кодты қамтудан алып тастағыңыз келсе, себебі оған генерациялау құралы қолдау көрсетуі керек:
def generated_code(): # pragma: no cover do_something()
Қосымша ақпаратты Coverage.py құжаттамасында.