2015-02-25 24 views
5

Đối với một file python cho rằng có những dòng sau ở đầu:Python unittest: làm thế nào để đáp ứng bảo hiểm mũi cho import các gói

import traceback 
import datetime 
from django.contrib.contenttypes import generic 
from django.contrib.contenttypes.models import ContentType 
from django.db import models 
from django.conf import settings 

Làm thế nào để viết bài kiểm tra đơn vị đó sẽ dẫn đến mũi không hiển thị 'mất tích 'cho những dòng đó?

+0

Bạn có thể cụ thể hơn không? Những gì đang hiển thị là thiếu? Bạn có nghĩa là báo cáo bảo hiểm? – Oleksiy

+0

Giả sử các dòng mã trong bài đăng của tôi là sáu dòng đầu tiên của một tệp, phạm vi bảo vệ mũi sẽ hiển thị các dòng đó dưới dạng mã vùng bị thiếu. Tôi muốn biết làm thế nào để viết các bài kiểm tra để bao gồm những dòng này. – Duncan

+2

Có vẻ như mức độ phù hợp được bắt đầu sau khi tệp được nhập. Hiển thị cách bạn chạy thử nghiệm của mình. –

Trả lời

0

Tôi nghĩ nếu nó hiển thị những dòng bị thiếu trong phạm vi mã, điều đó có nghĩa là mô-đun này không bao giờ được sử dụng hoặc được nhập. Những dòng này sẽ hiển thị như được trình bày trong báo cáo miễn là bạn nhập thành công các mô-đun đó và không cần thử nghiệm thêm để xác thực khả năng nhập các mô-đun django được thử nghiệm tốt. Miễn là bạn có một bài kiểm tra duy nhất để kiểm tra một cái gì đó trong mô-đun đó, bạn sẽ ổn thôi. Ví dụ:

import traceback 
import datetime 
# from django.contrib.contenttypes import generic 
# from django.contrib.contenttypes.models import ContentType 
from django.db import models 
from django.conf import settings 


def foo(a): 
    return a + 5 


def test_foo(): 
    assert foo(5) == 10 

sẽ dẫn đến 100% mức độ phù hợp khi chạy dưới mũi với tùy chọn --with-coverage cho tệp cụ thể này. Tôi đã nhận xét ra các gói django.contrib vì tôi không sử dụng django-nose và không có cài đặt thích hợp cho ví dụ này, nhưng nó không quan trọng.

+0

Tôi biết rằng đây là cũ, nhưng bây giờ tôi có cùng một vấn đề, và thực sự các mô-đun được nhập khẩu đã có bởi vì tôi có dòng màu xanh lá cây bên trong phương pháp của các lớp học được định nghĩa trong mô-đun này. Đối với tôi, bằng cách nào đó không thể gọi một phương thức từ một lớp học mà không phải nhập nó trước, nhưng mũi nghĩ rằng đó chính là điều đó. –

Các vấn đề liên quan