在Django中,我的測試是一組test_foo.py
my_django_app/tests/
中的文件,每個文件包含一個TestCase
子類,並自動查找並運行哪個django。如何讓django的unittest TestLoader查找並運行我的文檔測試?
我有一堆帶簡單文檔測試的實用程序模塊,我想將其包含在我的測試套件中。我嘗試使用doctest.DocTestSuite()
來定義my_django_app/tests/test_doctests.py
中的測試套件,但是django的測試運行器在該模塊中找不到新測試。
有沒有一種方法可以創建一個TestCase類來調用我的doctests,或者以某種方式定義一個新的tests/test_foo.py
模塊來運行這些測試?
import doctest
import unittest
# These are my modules that contain doctests:
from util import bitwise
from util import text
from util import urlutil
DOCTEST_MODULES = (
bitwise,
text,
urlutil,
)
# unittest.TestLoader will call this when it finds this module:
def load_tests(*args, **kwargs):
test_all_doctests = unittest.TestSuite()
for m in DOCTEST_MODULES:
test_all_doctests.addTest(doctest.DocTestSuite(m))
return test_all_doctests
Django使用內置的單元測試TestLoader,其中,試驗發現期間,將調用load_tests()測試模塊: