pythonでmultiprocessingを使ってるときcoverageとる

チラ裏という自分用メモ
なんか知らんけどコマンドラインで指定できないっぽいらしい。ので.coveragercに

concurrency = multiprocessing

が必要。.coveragercはデフォだとカレントディレクトリを見るらしい...てっきり${HOME}見てると思っただよ...


あとなんか大量に.coverageXXが出来る。なんかプログラム名だか+pidっぽい。プロセスごとにつくってるんかな?
なのでまとめないといけんので

$ coverage combine

がいる。
例外投げるテストケースとかいろいろつくってあとでまとめるだろと言われそうだが忘れてました...ひどい。


ちゃんとやれよとあっちこっちから突っ込まれそうだけど、とりまこうしてる。.coveragercをカレントディレクトリに置いて

[run]
source = .

branch = True
concurrency = multiprocessing

omit = "hoge_*","/usr/lib*"

hoge_*と/usr/lib*を除外したかったんで...カンマでつなげるんかいな...。
で、こんな感じで叩いてる。

$ rm -rf htmlcov ;coverage erase; coverage run xx.py; coverage combine ;  coverage report ; coverage html;