/ / Python pokrytie: beží viac ako 1 test - python, kód-pokrytie

Python pokrytie: beží viac ako 1 test - python, pokrytie kódmi

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ď č. 1

Upraviť (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ú testa vytvorte svoje testce podľa dedenia unittest.TestCase, nosetests nájde. Viac informácií tu. </ S>