Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么django不使用unittest显示测试结果?_Python_Django_Django Rest Framework_Python Unittest - Fatal编程技术网

Python 为什么django不使用unittest显示测试结果?

Python 为什么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

当我使用unittest模块测试我的模型时,出现了一个问题,即当过程成功时,除了来自“打印”的字符串外,没有显示任何内容。我对用户的迭代结果没有显示。我所了解的如下:

1,models.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")
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开头,例如
    test\u get\u user\u query
    ,这是为了使您的测试可以从以下位置调用:
    /manage.py test appName
    ,因此您不必引用测试的整个路径
  • 单元测试中使用的数据库与开发数据库是隔离的,这意味着它完全是空的,每次需要测试时都需要填充它,例如,您应该在
    get\u user
    的开头或
    setUp()
    函数:
    User.objects.create(email=)exp@me.com“,password='somepass'..)
    (填充其余部分),以便以后查询
  • 使用断言编写测试,不应使用打印,下面是一个示例:
  • 只需更改测试所针对的数据,这只是一个示例

    关于unittest模块还有很多需要了解的内容,如果您需要更多帮助,请阅读本手册

    还可以查看Harry J.W.Percival的这本书,这是一个很好的资源:


    希望这有帮助

    显示正确,但您没有编写任何测试。
    要编写单元测试,您应该知道以下几点:

  • 您的测试函数应该以单词test开头,例如
    test\u get\u user\u query
    ,这是为了使您的测试可以从以下位置调用:
    /manage.py test appName
    ,因此您不必引用测试的整个路径
  • 单元测试中使用的数据库与开发数据库是隔离的,这意味着它完全是空的,每次需要测试时都需要填充它,例如,您应该在
    get\u user
    的开头或
    setUp()
    函数:
    User.objects.create(email=)exp@me.com“,password='somepass'..)
    (填充其余部分),以便以后查询
  • 使用断言编写测试,不应使用打印,下面是一个示例:
  • 只需更改测试所针对的数据,这只是一个示例

    关于unittest模块还有很多需要了解的内容,如果您需要更多帮助,请阅读本手册

    还可以查看Harry J.W.Percival的这本书,这是一个很好的资源:


    希望这有帮助

    显示正确,但您没有编写任何测试。
    要编写单元测试,您应该知道以下几点:

  • 您的测试函数应该以单词test开头,例如
    test\u get\u user\u query
    ,这是为了使您的测试可以从以下位置调用:
    /manage.py test appName
    ,因此您不必引用测试的整个路径
  • 单元测试中使用的数据库与开发数据库是隔离的,这意味着它完全是空的,每次需要测试时都需要填充它,例如,您应该在
    get\u user
    的开头或
    setUp()
    函数:
    User.objects.create(email=)exp@me.com“,password='somepass'..)
    (填充其余部分),以便以后查询
  • 使用断言编写测试,不应使用打印,下面是一个示例:
  • 只需更改测试所针对的数据,这只是一个示例

    关于unittest模块还有很多需要了解的内容,如果您需要更多帮助,请阅读本手册

    还可以查看Harry J.W.Percival的这本书,这是一个很好的资源:


    希望这有帮助

    显示正确,但您没有编写任何测试。
    要编写单元测试,您应该知道以下几点:

  • 您的测试函数应该以单词test开头,例如
    test\u get\u user\u query
    ,这是为了使您的测试可以从以下位置调用:
    /manage.py test appName
    ,因此您不必引用测试的整个路径
  • 单元测试中使用的数据库与开发数据库是隔离的,这意味着它完全是空的,每次需要测试时都需要填充它,例如,您应该在
    get\u user
    的开头或
    setUp()
    函数:
    User.objects.create(email=)exp@me.com“,password='somepass'..)
    (填充其余部分),以便以后查询
  • 使用断言编写测试,不应使用打印,下面是一个示例:
  • 只需更改测试所针对的数据,这只是一个示例

    关于unittest模块还有很多需要了解的内容,如果您需要更多帮助,请阅读本手册

    还可以查看Harry J.W.Percival的这本书,这是一个很好的资源:


    希望这有帮助

    单元测试不寻找以“test”开头的方法吗?如果您将名称更改为test\u get\u user会发生什么情况?是的,确实如此,但即使没有前缀“test\u”,也可以将其指定为完整路径。我尝试了您的方法,但没有成功!你有在测试数据库中实例化对象的设置方法吗?没有,我没有,我只是注意到了这个基本的测试方法,但是,unittest可以使用实际的数据库吗?unittest不寻找以“test\”开头的方法吗?如果你把名字改成test_get_user会怎么样?是的,