😽
pytestでカバレッジを計りながら開発したい
問題
- pytestを使っている
- テストカバレッジを計りながら開発したい
- どうするか?
対応
pytest-cov を使う。
例えば、
├─src
│ └─domains
│ └─foo
└─test
import pytest
from src.domains.foo.domain import Domain as Foo
def test_foo():
Foo()
class Domain:
pass
の時、
> pytest --cov=src test
========================== test session starts ===========================
plugins: cov-4.0.0
collected 1 item
test\test_domain.py . [100%]
---------- coverage: platform win32, python 3.10.8-final-0 -----------
Name Stmts Miss Cover
-----------------------------------------------
src\domains\foo\domain.py 2 0 100%
-----------------------------------------------
TOTAL 2 0 100%
=========================== 1 passed in 0.10s ============================
となる。
class Domain:
def execute(self):
pass
の実装を加えると、
> pytest --cov=src test
========================== test session starts ===========================
plugins: cov-4.0.0
collected 1 item
test\test_domain.py . [100%]
---------- coverage: platform win32, python 3.10.8-final-0 -----------
Name Stmts Miss Cover
-----------------------------------------------
src\domains\foo\domain.py 3 1 67%
-----------------------------------------------
TOTAL 3 1 67%
=========================== 1 passed in 0.10s ============================
となる。
Discussion