คำตอบที่ระบุโดย Tomasz นั้นถูกต้อง อย่างไรก็ตามอาจเป็นเรื่องน่าเบื่อที่จะต้องแน่ใจว่าการนำเข้า__init__.py
ตรงกับโครงสร้างไฟล์ของคุณ
หากต้องการตรวจหาการทดสอบทั้งหมดในโฟลเดอร์โดยอัตโนมัติคุณสามารถเพิ่มสิ่งนี้ได้ใน__init__.py
:
import unittest
def suite():
return unittest.TestLoader().discover("appname.tests", pattern="*.py")
วิธีนี้จะช่วยให้คุณสามารถรันได้./manage.py test appname
แต่จะไม่จัดการกับการทดสอบเฉพาะ ในการทำเช่นนั้นคุณสามารถใช้รหัสนี้ (เช่นกันใน__init__.py
):
import pkgutil
import unittest
for loader, module_name, is_pkg in pkgutil.walk_packages(__path__):
module = loader.find_module(module_name).load_module(module_name)
for name in dir(module):
obj = getattr(module, name)
if isinstance(obj, type) and issubclass(obj, unittest.case.TestCase):
exec ('%s = obj' % obj.__name__)
ตอนนี้คุณสามารถเรียกใช้การทดสอบทั้งหมดของคุณผ่านmanage.py test app
ทางไฟล์manage.py test app.TestApples