2023年3月28日火曜日

pytest-covでファイルや関数を無視する方法

pytest-covでファイルや関数を無視する方法

概要

カバレッジの計算からは外したい場合などがあると思います
その方法をいろいろ紹介します

環境

  • Ubuntu 18.04
  • Python 3.10.2
  • pytest-cov 2.10.1

.coveragerc

[report]
exclude_lines =
    if __name__ == .__main__.:
    pragma: no cover
omit =
    path/to/file/mymodule.py
    path/to/file/mymodule2.py

ちょっと解説

if __name__ はメイン関数の実行をテスト対象にしたくない場合に使います
if __name__ 配下でコールされているメソッドやクラスはすべてテストのカバレッジ対象から外れます

pragma: no cover は除外したい関数があるときに便利です
関数の名前の横にコメントで # pragma: no cover とすることでその関数をカバレッジの対象から除外できます
この方法の場合大本の関数を除外してもその関数内でコールされている他の関数は対象になるのですべて除外したい場合はすべてにコメントを入れる必要があります

omit を使ってファイルを指定するとそのファイル自体をすべて除外することができます
ファイルは複数指定することが可能です

参考サイト

0 件のコメント:

コメントを投稿