これを行うには、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 run に doctests が表示されるはずです。
$ python manage.py test project
これについては、 django テストのドキュメントで詳しく説明されています。
テストを実行すると、テスト ユーティリティのデフォルトの動作は、models.py および tests.py 内のすべてのテスト ケース (つまり、unittest.TestCase のサブクラス) を検索し、それらのテスト ケースからテスト スイートを自動的に構築することです。そのスイートを実行します。
モジュールのテスト スイートを定義する 2 つ目の方法があります。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