pip install coverage | poetry add coverage
coverage python app/manage.py test
coverage run app/manage.py test
~/projects/fastcampus/lecture/ci develop*
(ci-env) ci-env ❯ coverage run --source='.' app/manage.py test
System check identified no issues (0 silenced).
Ran 0 tests in 0.000s
OK
~/projects/fastcampus/lecture/ci develop*
(ci-env) ci-env ❯ coverage report -m
Name Stmts Miss Cover Missing
app/config/init.py 0 0 100%
app/config/settings.py 18 0 100%
app/config/urls.py 3 0 100%
app/manage.py 12 2 83% 11-12
TOTAL 33 2 94%
~/projects/fastcampus/lecture/ci develop*
(ci-env) ci-env ❯ coverage run app/manage.py test
System check identified no issues (0 silenced).
Ran 0 tests in 0.000s
OK
~/projects/fastcampus/lecture/ci develop*
(ci-env) ci-env ❯ coverage report -m
Name Stmts Miss Cover Missing
app/config/init.py 0 0 100%
app/config/settings.py 18 0 100%
app/config/urls.py 3 0 100%
TOTAL 21 0 100%
Missing이 의미하는 것은 실행되지 않는 코드를 의미한다
~/projects/fastcampus/lecture/ci develop* ⇡
(ci-env) ci-env ❯ coverage run app/manage.py test blog
/home/kimdooh/projects/fastcampus/lecture/ci/app/templates
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
Ran 1 test in 0.007s
OK
Destroying test database for alias 'default'...
~/projects/fastcampus/lecture/ci develop* ⇡
(ci-env) ci-env ❯ coverage report -m
Name Stmts Miss Cover Missing
app/blog/init.py 0 0 100%
app/blog/admin.py 1 0 100%
app/blog/apps.py 3 0 100%
app/blog/migrations/0001_initial.py 5 0 100%
app/blog/migrations/init.py 0 0 100%
app/blog/models.py 4 0 100%
app/blog/tests.py 4 0 100%
app/blog/urls.py 4 0 100%
app/blog/views.py 6 0 100%
app/config/init.py 0 0 100%
app/config/settings.py 20 0 100%
app/config/urls.py 3 0 100%
TOTAL 50 0 100%
poetry add pytest pytest-django
~/projects/fastcampus/lecture/ci develop* ⇡
(ci-env) ci-env ❯ coverage report -m
app/blog/init.py 0 0 100%
app/blog/admin.py 1 0 100%
app/blog/apps.py 3 0 100%
app/blog/migrations/0001_initial.py 5 0 100%
app/blog/migrations/init.py 0 0 100%
app/blog/models.py 4 0 100%
app/blog/tests.py 4 0 100%
app/blog/urls.py 4 0 100%
app/blog/views.py 6 0 100%
app/config/init.py 0 0 100%
app/config/settings.py 20 0 100%
app/config/urls.py 3 0 100%
TOTAL 50 0 100%
~/projects/fastcampus/lecture/ci develop* ⇡
(ci-env) ci-env ❯ coverage run -m pytest app
===============test session starts ===============
platform linux -- Python 3.7.5, pytest-5.4.0, py-1.8.1, pluggy-0.13.1
django: settings: config.settings (from ini)
rootdir: /home/kimdooh/projects/fastcampus/lecture/ci, inifile: pytest.ini
plugins: django-3.8.0
collected 1 item
app/blog/tests.py . [100%]
=============== 1 passed in 0.11s ===============
~/projects/fastcampus/lecture/ci develop* ⇡
(ci-env) ci-env ❯ coverage report -m
Name Stmts Miss Cover Missing
app/blog/init.py 0 0 100%
app/blog/admin.py 1 0 100%
app/blog/apps.py 3 0 100%
app/blog/migrations/0001_initial.py 5 5 0% 3-13
app/blog/migrations/init.py 0 0 100%
app/blog/models.py 4 0 100%
app/blog/tests.py 4 0 100%
app/blog/urls.py 4 0 100%
app/blog/views.py 6 0 100%
app/config/init.py 0 0 100%
app/config/settings.py 20 0 100%
app/config/urls.py 3 0 100%
TOTAL 50 5 90%
(ci-env) ci-env ❯ poetry add codecov pytest-cov
# pytest, pytest-django, coverage를 사용해서 code
pytest --cov app
# codecov에
CODECOV_TOKEN=<codecov.io Token> codecov