Django在创建应用时,会自动生成tests.py文件,编写测试用例:
from django.test import TestCase #django.test.TestCase从unittest.TestCase继承而来
from sign.models import Event,Guest
# Create your tests here.
class ModelTest(TestCase):
def setUp(self):
#创建数据,但此数据不会真的向数据库表中插入数据
Event.objects.create(id=4,name="django测试",status=True,limit=10,address="ziyang",start_time="2018-07-19 02:38:28")
Guest.objects.create(id=6,event_id=4,realname="李大龙",phone="13678946352",email="lidalong@qq.com",sign=False)
def test_event_models(self):
result = Event.objects.get(name="django测试")
self.assertEqual(result.address,"ziyang")
self.assertTrue(result.status)
def test_guest_models(self):
result = Guest.objects.get(realname="李大龙")
self.assertEqual(result.phone,"13678946352")
self.assertFalse(result.sign)
不要单独的执行tests.py文件,Django提供专门的”test“命令来运行测试:python manage.py test
执行结果如下:
以下是运行测试用例的几种方法
- 运行sign下的所有测试用例:>python manage.py test sign
- 运行sign应用下的tests.py测试文件:python manage.py test sign.tests
- 运行sign应用tests.py测试文件下的ModelTest测试类:python manage.py test sign.tests.ModelTest
- 运行ModelTest测试类下面的test_event_models测试方法(用例):python manage.py test sign.tests.ModelTest.test_event_models
- 使用-p(或--pattern)参数模糊匹配测试文件:python manage.py test -p test*.py