Django测试模型属性

普罗米修斯

以下是我当前coverage.py报告的屏幕截图。

在此处输入图片说明

我不确定如何获得此模型的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
奥古斯托·德斯特雷罗

在django_coverage项目页面上查看此问题

另外,请查看coverage.py官方常见问题解答,尤其是以下内容:

Q: Why do the bodies of functions (or classes) show as executed,
   but the def lines do not?

似乎在实际导入模型之后启动了覆盖机制

尝试回到标准的Django测试场景(使​​用内置的测试运行器),并通过发出以下命令来手动运行coverage:

coverage run --source='.' ./manage.py test
coverage report
coverage html

查看报告是否不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django测试模型属性

来自分类Dev

遍历Django模型属性

来自分类Dev

Django模型属性

来自分类Dev

使用ImageField的Django测试模型

来自分类Dev

测试Django模型清理方法

来自分类Dev

测试Django和模型方法

来自分类Dev

抽象的Django模型没有“模型”属性?

来自分类Dev

Django模型中的派生属性

来自分类Dev

Django动态访问模型属性

来自分类Dev

Django模型中的属性数

来自分类Dev

Django视图/模型属性错误

来自分类Dev

Django 找不到模型属性

来自分类Dev

模型上的Rails rspec测试更新属性

来自分类Dev

在Spring中测试null模型属性

来自分类Dev

在测试时在模型上设置属性

来自分类Dev

在Spring Boot Controllers中测试模型属性

来自分类Dev

我应该测试模型上的属性吗?

来自分类Dev

模型上的Rails rspec测试更新属性

来自分类Dev

在Spring Boot Controllers中测试模型属性

来自分类Dev

Django模型的类属性和实例属性?

来自分类Dev

如何使用pytest测试Django模型?

来自分类Dev

带有FilerImageField的Django测试模型

来自分类Dev

如何测试Django模型方法__str __()

来自分类Dev

如何对Django模型进行单元测试?

来自分类Dev

Django使用称为TestCase的模型进行测试

来自分类Dev

django:模型的@property 函数的测试用例

来自分类Dev

django 测试 - 未创建模型实例

来自分类Dev

使用Spring的MockMvc框架,如何测试模型属性的属性值?

来自分类Dev

Django模型-在JSON中添加属性