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 и не имеют надлежащих настроек для этого примера, но это не должно иметь значения.

Другие вопросы по тегам