Python 为什么django不使用unittest显示测试结果?
当我使用unittest模块测试我的模型时,出现了一个问题,即当过程成功时,除了来自“打印”的字符串外,没有显示任何内容。我对用户的迭代结果没有显示。我所了解的如下: 1,models.pyPython 为什么django不使用unittest显示测试结果?,python,django,django-rest-framework,python-unittest,Python,Django,Django Rest Framework,Python Unittest,当我使用unittest模块测试我的模型时,出现了一个问题,即当过程成功时,除了来自“打印”的字符串外,没有显示任何内容。我对用户的迭代结果没有显示。我所了解的如下: 1,models.py class UserManager(models.Manager): def hah(self): return None class User(models.Model): id = models.IntegerField(pri
class UserManager(models.Manager):
def hah(self):
return None
class User(models.Model):
id = models.IntegerField(primary_key=True)
email = models.CharField(unique=True, max_length=50)
password = models.CharField(max_length=50)
logintime = models.IntegerField(default='')
registertime = models.IntegerField()
modifytime = models.IntegerField()
loginip = models.CharField(max_length=60)
islock = models.IntegerField()
isavtive = models.IntegerField()
activecode = models.CharField(max_length=45)
role = models.CharField(max_length=1)
objects = UserManager()
class Meta:
db_table = 'user'
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','email','password','loginip')
class UserModelTest(unittest.TestCase):
def get_user(self):
users = User.objects.all()
userserializer = UserSerializer(users,many=True)
print(userserializer.data)
print(users)
for row in users:
print(row.email)
print("this is user model test")
2,serializers.py
class UserManager(models.Manager):
def hah(self):
return None
class User(models.Model):
id = models.IntegerField(primary_key=True)
email = models.CharField(unique=True, max_length=50)
password = models.CharField(max_length=50)
logintime = models.IntegerField(default='')
registertime = models.IntegerField()
modifytime = models.IntegerField()
loginip = models.CharField(max_length=60)
islock = models.IntegerField()
isavtive = models.IntegerField()
activecode = models.CharField(max_length=45)
role = models.CharField(max_length=1)
objects = UserManager()
class Meta:
db_table = 'user'
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','email','password','loginip')
class UserModelTest(unittest.TestCase):
def get_user(self):
users = User.objects.all()
userserializer = UserSerializer(users,many=True)
print(userserializer.data)
print(users)
for row in users:
print(row.email)
print("this is user model test")
3,tests.py
class UserManager(models.Manager):
def hah(self):
return None
class User(models.Model):
id = models.IntegerField(primary_key=True)
email = models.CharField(unique=True, max_length=50)
password = models.CharField(max_length=50)
logintime = models.IntegerField(default='')
registertime = models.IntegerField()
modifytime = models.IntegerField()
loginip = models.CharField(max_length=60)
islock = models.IntegerField()
isavtive = models.IntegerField()
activecode = models.CharField(max_length=45)
role = models.CharField(max_length=1)
objects = UserManager()
class Meta:
db_table = 'user'
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','email','password','loginip')
class UserModelTest(unittest.TestCase):
def get_user(self):
users = User.objects.all()
userserializer = UserSerializer(users,many=True)
print(userserializer.data)
print(users)
for row in users:
print(row.email)
print("this is user model test")
当我运行python3.4./manage.py test user.tests.UserModelTest.get_user时,结果是:
Creating test database for alias 'default'...
[]
[]
this is user model test
.
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
Destroying test database for alias 'default'...
我是否错过了关于unittest的某些内容或任何误解?我注意到有人也有同样的问题,建议他们添加
--s
选项,但对我不起作用。有什么解决方案吗?提前谢谢 显示正确,但您没有编写任何测试。要编写单元测试,您应该知道以下几点:
test\u get\u user\u query
,这是为了使您的测试可以从以下位置调用:/manage.py test appName
,因此您不必引用测试的整个路径get\u user
的开头或setUp()
函数:User.objects.create(email=)exp@me.com“,password='somepass'..)
(填充其余部分),以便以后查询希望这有帮助 显示正确,但您没有编写任何测试。
要编写单元测试,您应该知道以下几点:
test\u get\u user\u query
,这是为了使您的测试可以从以下位置调用:/manage.py test appName
,因此您不必引用测试的整个路径get\u user
的开头或setUp()
函数:User.objects.create(email=)exp@me.com“,password='somepass'..)
(填充其余部分),以便以后查询希望这有帮助 显示正确,但您没有编写任何测试。
要编写单元测试,您应该知道以下几点:
test\u get\u user\u query
,这是为了使您的测试可以从以下位置调用:/manage.py test appName
,因此您不必引用测试的整个路径get\u user
的开头或setUp()
函数:User.objects.create(email=)exp@me.com“,password='somepass'..)
(填充其余部分),以便以后查询希望这有帮助 显示正确,但您没有编写任何测试。
要编写单元测试,您应该知道以下几点:
test\u get\u user\u query
,这是为了使您的测试可以从以下位置调用:/manage.py test appName
,因此您不必引用测试的整个路径get\u user
的开头或setUp()
函数:User.objects.create(email=)exp@me.com“,password='somepass'..)
(填充其余部分),以便以后查询希望这有帮助 单元测试不寻找以“test”开头的方法吗?如果您将名称更改为test\u get\u user会发生什么情况?是的,确实如此,但即使没有前缀“test\u”,也可以将其指定为完整路径。我尝试了您的方法,但没有成功!你有在测试数据库中实例化对象的设置方法吗?没有,我没有,我只是注意到了这个基本的测试方法,但是,unittest可以使用实际的数据库吗?unittest不寻找以“test\”开头的方法吗?如果你把名字改成test_get_user会怎么样?是的,