Tôi hiện đang cố gắng sử dụng thư viện giả để viết một số unittests mũi cơ bản trong python.Làm thế nào để loại bỏ gói giả từ báo cáo vùng phủ python bằng cách sử dụng nosetests
Sau khi hoàn thành một số ví dụ cơ bản, bây giờ tôi đã cố gắng sử dụng nosetests --with-coverage
và bây giờ tôi có gói mô hình và gói tôi đã cố gắng 'bỏ qua' được hiển thị trong báo cáo phủ sóng. Có khả năng loại trừ chúng không?
Đây là lớp Tôi muốn thử nghiệm:
from imaplib import IMAP4
class ImapProxy:
def __init__(self, host):
self._client = IMAP4(host)
Và testcase: từ vá mock nhập khẩu
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")
bây giờ tôi nhận được đầu ra sau cho 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]
Có cách nào để loại trừ gói giả và imaplib gói mà không phải bằng tay danh sách trắng tất cả ngoại trừ những gói bởi --cover-package=PACKAGE
Nhờ Ned Batchelder bây giờ tôi biết về các tập tin .coveragerc, cảm ơn vì điều đó!
Tôi tạo ra một tập tin .coveragerc với nội dung sau:
[report]
omit = *mock*
Bây giờ đầu ra của tôi cho mock trong báo cáo bảo hiểm là:
mock 1240 1240 0% 16-2356
Nó không bao gồm các gói giả nữa nhưng vẫn hiển thị nó trong báo cáo.
Tôi sử dụng Coverage.py, phiên bản 3.5.2 nếu đây là bất kỳ trợ giúp nào.
Cố gắng xóa dữ liệu trước đó bằng '--cover-erase'. – xbello