单元测试如何在django-tagging中工作,因为我希望我的运行方式如此?

时间:2009-08-14 17:13:45

标签: python django unit-testing

在各种Django应用中浏览tests目录时,我偶然发现了models.pysettings.py个文件(例如django-tagging)。

但是没有找到同步测试模型或应用自定义测试设置的代码 - 但测试会使用它们,就好像django会自动神奇地加载它们一样。但是,如果我尝试运行django-tagging的测试:manage.py test tagging,它甚至不会进行单个测试。

这正是我现在需要测试我的应用程序,但实际上并不知道如何。

那么,它是如何运作的?

2 个答案:

答案 0 :(得分:1)

如果您想在django-tagging中运行测试,可以尝试:

  

django-admin.py test --settings = tagging.tests.settings

基本上,它使用位于tests.py包/目录中的tests文件中的doctests。测试使用同一目录中的设置文件(并在命令行中指定为django-admin)。有关更多信息,请参阅writing doctests上的django文档。

答案 1 :(得分:0)

你的意思是,“我如何在Django中编写单元测试?”查看documentation on testing

当我完成它时,我在一个测试/子目录中编写了单元测试。确保该目录有一个空的__init__.py文件。您可能还需要models.py文件。添加从unittest.TestCase派生的单元测试(在模块unittest中)。将模块“xxxx.test”添加到settings.py中的INSTALLED_APPS(其中“xxxx”是应用程序的基本名称)。

以下是我的一些示例代码,可以帮助您入门:

#!/usr/bin/env python
# http://docs.djangoproject.com/en/dev/topics/testing/

from sys import stderr
import unittest
from django.test.client import Client
from expenses.etl.loader import load_all, load_init

class TestCase(unittest.TestCase):
    def setUp(self):
        print "setUp"

    def testLoading(self):
        print "Calling load_init()"
        load_init()
        print "Calling load_all()"
        load_all()
        print "Done"

if __name__ == '__main__':
    unittest.main()

如果您的意思是“如何将数据加载到我的单元测试中?”,然后使用相同文档页面中描述的灯具。