如何阻止django重新创建测试数据库

时间:2014-12-04 22:44:49

标签: python django django-testing

我是django测试的新手,我在djnago测试中只有一条简单的print hello

class SimpleTest(TestCase):
    def setUp(self):
        self.kid = mommy.make(User)

    def test_details(self):
        print self.kid
        self.assertEqual(200, 200)

我使用此命令运行测试

./manage.py test tests/myapp/

运行该测试真的需要3分钟。 djnago首先说创建数据库并等待3分钟以显示结果。

如果在测试中输入一个单词,那么我必须等待3分钟。它非常讨厌。

我认为,每次进行多次迁移都可能会造成重新创建数据库。

有没有办法让它快速或每次都停止重新创建数据库。

我正在使用django 1.7

最新的开发版本具有命令--keepdb但不在1.7

1 个答案:

答案 0 :(得分:1)

如果您只是为了开发目的进行测试,我建议您将测试数据库设置为使用sqlite3,默认情况下它将利用内存数据库并加快测试速度。

我通常把它放到local_settings中,只能为我的开发环境执行...

if 'test' in sys.argv:
    DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}

如果您计划将发布版推送到生产环境,则需要针对为您的生产数据库(MySQL,PostgreSQL等)提供服务的引擎进行测试。