Ниже приведен снимок экрана моего текущего отчета о покрытии.Характеристики модели тестирования Django
Я не уверен, как получить охват 100% для этой модели. Как я могу проверить для строк 13-20? В моем tests_model.py
я предположил, создав экземпляр, который будет закрыт. Но это не так.
# Core Django imports
from django.test import TestCase
# Third-party app imports
import nose.tools as noz
from model_mommy import mommy
from model_mommy.recipe import Recipe, foreign_key
# app imports
from ..models.company import Company
from testapp.apps.profiles.models.appUserModel import AppUser
class CompanyModel(TestCase):
def setUp(self):
self.company = mommy.make(Company)
noz.assert_true(isinstance(self.company, Company))
def test_company_user_count_is_0(self):
company = mommy.make(Company)
noz.assert_equal(company.company_user_count(), 0)
def test_company_user_count(self):
# Relationship can be one-to-many with users.
company = mommy.make(Company)
user1, user2 = mommy.make(AppUser, _quantity=2)
company.users.add(user1)
company.users.add(user2)
noz.assert_equal(company.company_user_count(), 2)
def test_company_unicode(self):
noz.assert_equal(self.company.__unicode__(), self.company.name)
Я попытался проверить каждый атрибуты ее собственные в том же тестовом файле, например ...
def test_name(self):
company = mommy.make(Company, name="Test Name")
noz.assert_equal(company.name, "Test Name")
Но это не имеет никакого воздействия на мой счет покрытия.
на основе замечаний, я также попытался это:
def test_name(self):
company = mommy.make(Company)
company.name = "Test"
company.save()
noz.assert_equal(company.name, "Test")
Но опять же, это не имело никакого влияния на счет.
Это мои настройки для испытаний ...
INSTALLED_APPS += (
'django_nose',
'django_coverage',
'django_extensions',
)
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = [
'--with-coverage',
'--cover-package=testapp.apps.profiles,testapp.apps.referrals',
'--cover-html'
]
Консоль вывода:
> python manage.py test
.........
Name Stmts Miss Cover Missing
------------------------------------------------------------------------------------------------
testapp.apps.referrals.models 1 1 0% 1
testapp.apps.referrals.models.company 17 15 12% 1-24, 27
------------------------------------------------------------------------------------------------
TOTAL 136 73 46%
----------------------------------------------------------------------
Каталог:
testapp/
manage.py
testapp/
__init__.py
apps/
__init__.py
referrals/
__init__.py
tests/
__init__.py
model_tests.py
Как насчет обновления вашей модели с помощью некоторых фиктивных данных? –
@neo_blackcap вы имеете в виду взять уже созданный экземпляр self.company и обновить каждый атрибут? Просто попробовал, что company.name = «Тест» без какого-либо воздействия на счет извините :) – Prometheus
либо создать, либо обновить в порядке. Я просто думаю, что результат должен быть сохранен в базе данных, а не только в памяти. –