Python 在django标记中,单元测试是如何工作的,因为我希望我的测试像这样运行?

Python 在django标记中,单元测试是如何工作的,因为我希望我的测试像这样运行?,python,django,unit-testing,Python,Django,Unit Testing,在各种Django应用程序中浏览testsdir时,有几次我偶然发现models.py和settings.py文件(例如在Django tagging中) 但是没有找到同步测试模型或应用自定义测试设置的代码,但是测试使用它们就像django会神奇地自动加载它们一样。但是,如果我尝试运行django tagging的测试:manage.py test tagging,它甚至不会执行单个测试 这正是我现在测试我的应用程序所需要的,但我真的不知道怎么做 那么,它是如何工作的呢?您的意思是,“我如何用D

在各种Django应用程序中浏览
tests
dir时,有几次我偶然发现
models.py
settings.py
文件(例如在
Django tagging
中)

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

这正是我现在测试我的应用程序所需要的,但我真的不知道怎么做

那么,它是如何工作的呢?

您的意思是,“我如何用Django编写单元测试?”请检查

完成后,我在test/子目录中编写了单元测试。确保目录中有一个空的_uinit__uu.py文件。您可能还需要一个models.py文件。添加从unittest.TestCase派生的单元测试(在模块unittest中)。将模块“xxxx.test”添加到settings.py中已安装的应用程序中(其中“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()

如果您的意思是“如何将数据加载到单元测试中?”,那么请使用同一文档页面上描述的装置。

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

django-admin.py测试--设置=tagging.tests.settings


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

不,不太清楚。问题是,我的通知应用程序与外部收件人模型绑定(根据我的应用程序的收件人模型设置),我想独立于其他应用程序进行测试。要做到这一点,我需要某种占位符模型来进行测试。因此,您的问题更接近于“单元测试如何在django标记中工作,因为我希望我的单元测试能够这样运行?”如此简单,但又如此有用。我不知道
--settings
参数。非常感谢。