Python unittest: как удовлетворить покрытие носа при импорте пакетов
Для данного файла python, который имеет следующие строки вверху:
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
Как мне написать модульные тесты, которые приведут к тому, что в этих строках не будет отображаться "отсутствует"?
1 ответ
Я думаю, если он показывает эти строки как отсутствующие в покрытии кода, это означает, что этот модуль никогда не использовался и не импортировался. Эти строки будут отображаться так, как описано в отчете, до тех пор, пока вы успешно импортируете эти модули, и не требуется никаких дополнительных тестов для проверки возможности импорта этих хорошо протестированных модулей django. Пока у вас есть один тест, который проверяет что-то в этом модуле, у вас все будет хорошо. Например:
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
приведет к 100% охвату при беге под носом с --with-coverage
вариант для этого конкретного файла. Я закомментировал django.contrib
пакеты, потому что я не использую django-nose
и не имеют надлежащих настроек для этого примера, но это не должно иметь значения.