私はカバレッジを初めて使用しており、奇妙な問題に遭遇しました。私のカバレッジは仮想環境のサイト パッケージを考慮に入れています。カバレッジ実行の出力は次のとおりです。
coverage run test.py
....................
----------------------------------------------------------------------
Ran 20 tests in 0.060s
OK
(atcatalog)- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -jmfrank63@fullstack-audio-text-catalog:~/workspace (git master) [19:58:45]
$ coverage report
Name Stmts Miss Cover
-----------------------------------------------------------------------------------------------------
/home/ubuntu/Envs/atcatalog/lib/python2.7/site-packages/flask/__init__ 18 0 100%
/home/ubuntu/Envs/atcatalog/lib/python2.7/site-packages/flask/_compat 38 20 47%
/home/ubuntu/Envs/atcatalog/lib/python2.7/site-packages/flask/app 528 255 52%
/home/ubuntu/Envs/atcatalog/lib/python2.7/site-packages/flask/blueprints 156 118 24%
.
.
.
/home/ubuntu/Envs/atcatalog/lib/python2.7/site-packages/werkzeug/urls 412 215 48%
/home/ubuntu/Envs/atcatalog/lib/python2.7/site-packages/werkzeug/utils 242 175 28%
/home/ubuntu/Envs/atcatalog/lib/python2.7/site-packages/werkzeug/wrappers 568 298 48%
/home/ubuntu/Envs/atcatalog/lib/python2.7/site-packages/werkzeug/wsgi 448 352 21%
atcatalog/__init__ 7 0 100%
atcatalog/views/__init__ 0 0 100%
atcatalog/views/publang 7 0 100%
atcatalog/views/pubtext 1 0 100%
atcatalog/views/userlang 13 0 100%
atcatalog/views/users 5 0 100%
atcatalog/views/usertext 14 0 100%
test 120 0 100%
-----------------------------------------------------------------------------------------------------
TOTAL 12530 8044 36%
(atcatalog)- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -jmfrank63@fullstack-audio-text-catalog:~/workspace (git master) [19:58:55]
以下は、ホームの下にあるプロジェクト ディレクトリの構造です。
workspace/
├── README.md
├── atcatalog
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── static
│ ├── templates
│ └── views
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── publang.py
│ ├── publang.pyc
│ ├── pubtext.py
│ ├── pubtext.pyc
│ ├── userlang.py
│ ├── userlang.pyc
│ ├── users.py
│ ├── users.pyc
│ ├── usertext.py
│ └── usertext.pyc
├── requirements.txt
├── run.py
└── test.py
最初はプロジェクト ディレクトリ内に仮想環境がありましたが、今は virtualenvwrapper を使用して ~/Envs に移動しましたが、問題は解決しませんでした。run.py と test.py は特別なものではなく、どちらも atcatalog から app をインポートします。仮想環境ディレクトリを省略する方法も探してみましたが、Google では答えがありませんでした (驚いたことに)。すでに十分にテストされているサイト パッケージをテストすることがカバレッジの目的ではないと思います。そのため、それらを実行から除外します。
サイト パッケージをテストする際のカバレッジを回避するにはどうすればよいでしょうか?
ベストアンサー1
感謝tknickman私はそれを理解しました:どちらかを使用してください
coverage run --source <path to project dir> test.py
または、カバレッジを実行するディレクトリに、次の内容を含む構成ファイル .coveragerc を作成します。
[run]
source =
<path to project dir>
これは、仮想環境がプロジェクトディレクトリの下にインストールされていない場合に使用します。仮想環境がプロジェクトディレクトリの下にインストールされている場合は、
coverage run --source <project path> --omit <pattern> test.py
omitは次のようなファイルパターンを要求することに注意してください。
~/projectdir/venv/*
パスの代わりに。
対応する .coveragerc は次のようになります。
[run]
source=
<path to project dir>
omit=
<path to project dir>/<name of virtual env>/*
標準ライブラリのパッケージと同様に、site-packages の下にインストールされたパッケージはデフォルトでカバーされるべきではないと私は依然として考えています。