coverage.pyを使ってみた。

http://nedbatchelder.com/code/modules/coverage.html

普通にコードカバレッジをだしてみる。

$ python coverage.py -e
$ python coverage.py -x ../pyramidTest.py
...
                                                                                                                                          • -
Ran 3 tests in 0.006s OK $ python coverage.py -r -m ../pyramid.py Name Stmts Exec Cover Missing
                                                                                  • -
../pyramid 12 9 75% 13-15

"-e"でデータ消して、"-x"でテスト実行。"-r"でレポート。13〜15行目がテストできていないらしい。
続けて、チェック済みコードを出力してみる。

$ python coverage.py -a ../pyramid.py
$ cat ../pyramid.py,cover
> def returnAster(count):
>     ret = ""
>     for i in range(count):
>         for j in range(i+1):
>             ret += "*"
>         ret += "\n"
>     ret = ret[:-1]
>     return ret

> if __name__ == "__main__":
!     for i in range(5):
!         print returnAster(i)
!         print "\n"

"ファイル名.cover"でチェック済みのソースが出力される。実際に中身をみてみると、
テストがカバーしきれていないところ(ほんとにそう言えるかは別問題やね)に"!"が付くみたい。