coverageを使う

http://pypi.python.org/pypi/coverage/2.6/

$ coverage run prettyprint.py
$ coverage html

まあ僕は面倒なので

$ coverage run prettyprint.py && coverage html

とやるのだけど。これをやるとこんなふうになる

カバレッジで覆われてないところのテストを書く。あー、でも最後のraise NotImplementedErrorとかは、うっかりミスをしたときにすぐ気づくように付けてあるもんであって普通は到達しないんだよな。わざと到達させるのも馬鹿らしい。

http://nedbatchelder.com/code/coverage/excluding.html
http://nedbatchelder.com/code/coverage/config.html#config

お、プロジェクトディレクトリに設定ファイル .coveragerc を置いて、正規表現で「これが含まれていたら無視しろ」って書けるらしい。例に、まさにraise NotImplementedErrorを無視するのが書いてあった。

    # Don't complain if tests don't hit defensive assertion code:
    raise AssertionError
    raise NotImplementedError

やったー、100%になったよー!