2012年9月12日

py.test で pep8 と coverage を同時にチェックする

概要

Python で テストする場合、pytestを使うと便利だ。
pytest には plugin 機構が存在しており、pep8 と coverage を同時にチェックすることができる。

設定

特に設定する項目はなく、plugin を pip でインストールするだけで使うことが可能になる。

pip install pytest-pep8
pip install pytest-cov

実行

py.test の実行にに、オプションに「--pep8」を付けると pep8 チェック、「--conv」を付けると coverage が動作する。

py.test --pep8 --cov myproj -v tests

pep8 チェックと coverage チェックが表示される。coverage チェックは毎回実行する必要はないが、pep8はチェックしておいた方が良い。

============================= test session starts ==============================
platform darwin -- Python 2.7.3 -- pytest-2.2.4 -- /path/to/bin/python
cachedir: /path/to/myproj/.cache
collected 3 items 

tests/__init__.py:0: PEP8-check SKIPPED
tests/test_sample.py:0: PEP8-check PASSED
tests/test_sample.py:15: TestSample.test_sample PASSED
--------------- coverage: platform darwin, python 2.7.3-final-0 ----------------
Name                  Stmts   Miss  Cover
-----------------------------------------
myproj/__init__        1      0   100%
myproj/sample          8      0   100%
myproj/sample2         8      3    63%
-----------------------------------------
TOTAL                  17      3    82%

===================== 2 passed, 1 skipped in 0.27 seconds ======================

テスト、テスト、そしてテスト

テストを書く。テストは最初に書く必要はないが、かならず必要になる。

blog comments powered by Disqus