如何在模型的覆盖率测试中获得 100% 的成绩?

Pro*_*eus 7 python django

我已经在我的 Django 项目上安装了覆盖范围。输出是:

     Name                               Stmts   Miss  Cover   
    ----------------------------------------------------------------
    test.apps.testapp.models.company     15      5    67%   2, 19-25
    ------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我已经测试了我能想到的该模型的所有内容,5 Missed 指的是什么?

这是我的模型:

class Company(models.Model):
    """
    Describes a Company within the system.
    """
    name = models.CharField(max_length=60)
    address_line1 = models.CharField(max_length=120)
    address_line2 = models.CharField(max_length=120, null=True, blank=True)
    address_city = models.CharField(max_length=120)
    address_county = models.CharField(max_length=120, null=True, blank=True)
    address_country = models.CharField(max_length=4, choices=COUNTRY_CHOICES, default="US")
    address_postcode = models.CharField(max_length=12)

    class Meta:
        app_label = "testapp"

    def company_user_count(self):
        """
        Return count of the numbers of users that belong to a company.
        :return: int
        """
        return self.users.count()
Run Code Online (Sandbox Code Playgroud)

我的测试:

class CompanyModel(TestCase):

    def setUp(self):
        self.company = CompanyFactory.create()

    def tearDown(self):
        pass

    def test_create_new_company_creation(self):
        """
        Ensure that a new company can be created.
        """
        company = CompanyFactory(name="Test Co")
        noz.assert_equal(company.name, "Test Co")

    def test_user_is_company(self):
        """
        Test relationship on user to company method is_company_user().
        """
        company = CompanyFactory.create()
        company_user = UserFactory.create(company=company)
        noz.assert_equal(company_user.is_company_user(), True)

    def test_company_user_relationship(self):
        """
        Test correct relationship on company is made to user.
        """
        company = CompanyFactory.create()
        user = UserFactory.create(company=company)
        noz.assert_equal(user.company.name, "Valhalla Ltd")


    def test_one_to_many_company_relationship(self):
        """
        Test company relationship of one-to-many with users.
        """
        company = CompanyFactory.create()
        user1 = UserFactory.create(company=company)
        user2 = UserFactory.create(company=company)
        company.company_user_count()
        noz.assert_equal(company.company_user_count(), 2)
Run Code Online (Sandbox Code Playgroud)

Joe*_*way 4

使用html 输出运行覆盖率实用程序,它会告诉您哪些行或分支未能测试。

如果您使用 django-nose 运行测试,请将--cover-html--cover-html-dir=<DIR>选项添加到NOSE_ARGSsettings

请参阅覆盖率文档中的示例输出。