您可以通过在 tests.py 中添加/编辑 suite() 函数来完成此操作,该函数定义了 django 测试运行器将运行哪些测试。
import unittest
import doctest
from project import views
def suite():
suite = unittest.TestSuite()
suite.addTest(doctest.DocTestSuite(views))
return suite
然后像往常一样运行你的测试,你应该在views.py中看到你的文档测试。
$ python manage.py test project
这在django 测试文档中有更详细的描述
当您运行测试时,测试实用程序的默认行为是在 models.py 和 tests.py 中查找所有测试用例(即 unittest.TestCase 的子类),并根据这些测试用例自动构建测试套件,并运行该套件。
还有第二种为模块定义测试套件的方法:如果您在 models.py 或 tests.py 中定义了一个名为 suite() 的函数,Django 测试运行器将使用该函数为该模块构建测试套件。这遵循建议的单元测试组织。有关如何构建复杂测试套件的更多详细信息,请参阅 Python 文档。
但是,请记住,构建您自己的测试套件意味着 django 测试运行器不会自动运行您在 tests.py 中的任何测试。例如,您必须手动将这些添加到您的套件中
import unittest
import doctest
from project import views
class FooTestCase(unittest.TestCase):
def testFoo(self):
self.assertEquals('foo', 'bar')
def suite():
suite = unittest.TestSuite()
suite.addTest(doctest.DocTestSuite(views))
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(FooTestCase))
return suite