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%になったよー!