【问题标题】:creating test database for Django Unit testing为 Django 单元测试创​​建测试数据库
【发布时间】:2015-11-04 09:18:57
【问题描述】:

如何使用来自其他数据库(例如:生产数据库)的值填充在测试 Django 测试用例时创建的测试数据库。

详细说明:

当我运行以下命令时,

$ python manage.py test

为测试目的创建了一个测试数据库,但其中没有任何数据。我希望创建的测试数据库填充一些初始值。

谢谢..

【问题讨论】:

    标签: python django unit-testing


    【解决方案1】:

    您可以使用dumpdata 从您的实时数据库中获取包含数据的文件。

    然后您可以自动从文件加载数据以进行测试(请参阅Django tests):

    from django.test import TestCase
    from django.core.management import call_command
    
    class Tests(TestCase):
        @classmethod
        def setUpTestData(cls):
            call_command('loaddata', 'myfile', verbosity=0)
    

    【讨论】:

      【解决方案2】:

      您可以使用django fixtures 来填充您的测试数据库。

      为您的生产数据库创建一个夹具并将其写入某个文件

      python manage.py dumpdata > backup.json
      

      您可以使用此命令填充您的测试数据库

      python manage.py loaddata backup.json
      

      如果你想通过运行python manage.py test 来做到这一点,那么你应该编写自定义django-admin commands

      【讨论】:

        【解决方案3】:

        您想查看fixtures。这是文档页面的链接:https://docs.djangoproject.com/en/1.8/howto/initial-data/

        基本上,您可能希望转储当前数据库以进行测试,因此您可以执行以下操作:

        python manage.py dumpdata
        

        然后你想把你的文件放在一个目录中,Django 会寻找夹具。您可以使用FIXTURE_DIRS 变量在设置中指定它,也可以使用默认值。默认值只是在您的 Django 应用程序中的 fixtures 目录中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-20
          • 2016-07-29
          • 2020-08-19
          • 1970-01-01
          • 2020-11-17
          • 1970-01-01
          • 1970-01-01
          • 2011-11-04
          相关资源
          最近更新 更多