現在、モックライブラリを使ってPythonで基本的なnose unittestを書くことを試みています。nosetestsを使ってモックパッケージをPythonカバレッジレポートから除外する方法
いくつかの基本的な例を終えた後、私はnosetests --with-coverage
を使用しようとしましたが、モックパッケージと私はモックアウェイを試みたパッケージがカバレッジレポートに表示されます。これらを排除する可能性はありますか?
from imaplib import IMAP4
class ImapProxy:
def __init__(self, host):
self._client = IMAP4(host)
そして、テストケース: 私は今nosetests --with-coverage
.
Name Stmts Miss Cover Missing
------------------------------------------
ImapProxy 4 0 100%
imaplib 675 675 0% 23-1519
mock 1240 810 35% [ a lot of lines]
ための次のような出力を得るモック輸入パッチ
from ImapProxy import ImapProxy
class TestImap:
def test_connect(self):
with patch('ImapProxy.IMAP4') as imapMock:
proxy = ImapProxy("testhost")
imapMock.assert_called_once_with("testhost")
からここ
は、私がテストしたいクラスがあります
モックパッケージを除外する方法はありますか? imaplibパッケージを手動で私は今、.coveragercファイルについては、そのためのおかげで知ってネッドBatchelderへ--cover-package=PACKAGE
おかげですべてが、これらのパッケージをホワイトリストすることなく!
私は以下の内容を.coveragercファイル作成:今、カバレッジ・レポートのモックのための私の出力がある
[report]
omit = *mock*
を:
mock 1240 1240 0% 16-2356
それはもはやモックパッケージをカバーしていませんが、まだ報告書にそれを示しています。
私は、これが助けになる場合は、Coverage.py、バージョン3.5.2を使用します。
'--cover-erase'で以前のデータを消去してみます。 – xbello