I "m premýšľal, je tu spôsob, ako špecifikovať viac ako 1 testovací súbor spustiť pri použití python pokrytie config (.coveragerc
) súbor. Ak nie je z konfiguračného súboru, možno je to možné pri spustení z príkazového riadku? V súčasnosti pre 3 rôzne súbory testov jednotiek I "m používam:
coverage run test1
coverage run -a test2
coverage run -a test3
Môže to byť kratšie? Vďaka
odpovede:
1 pre odpoveď č. 1Upraviť (2017-09-25): Ako @ ned-batchelder hovorí v komentároch, preferujte pytest cez nos ak sa začína nový projekt, pretože nos je neudržateľný.
Pohľadom na Dokumentácia o pokrytí, vyzerá to, že jediný režim, ktorý coverage
podporuje každý modul s každým príkazom.
Môžete použiť testovací rámec, ako napr nos pytest, aby ste spustili všetky vaše testy a nahlásili mieru úspešnosti / zlyhania a celkové pokrytie.
1) Nainštalujte pytest, pokrytie a pytest-cov
pip install pytest
pip install coverage
pip install pytest-cov
2) Spustite program pytest
commmand, pomocou --cov
pre každý modul alebo balík, ktorého pokrytie potrebujete merať. Napríklad:
pytest --cov=foo --cov=bar
Vzorový výstup:
Name Stmts Miss Cover Missing
--------------------------------------
bar.py 3 1 67% 5
foo.py 6 2 67% 9-11
--------------------------------------
TOTAL 9 3 67%
pytest
vaše testy nájdu, ak sa zhodujú so vzorom test_*.py
(alebo iné, viac informácií tu).
Zistite celkové pokrytie kódu pomocou nose
1) Nainštalujte nos a kryt
pip install nose
pip install coverage
2) Spustite program nosetests
príkaz --with-coverage
vlajka
nosetests --with-coverage
Vzorový výstup (pri jednom module foo.py):
Name Stmts Miss Cover
----------------------------
foo.py 6 2 67%
----------------------------------------------------------------------
Ran 1 test in 0.008s
OK
nosetests
automaticky nájde vaše testy pomocou niektorej heuristiky. Ak napríklad umiestnite testy do názvov súborov, ktoré začínajú test
a vytvorte svoje testce podľa dedenia unittest.TestCase
, nosetests
nájde. Viac informácií tu.
</ S>