我怎样才能指定一个数据库的Django测试使用,而不是让它每次构建它?
这是可能的,这里有一个办法:
1)定义你自己的测试运行看here怎么看。
2)对于您的自定义测试运行看在default test runner,你可以复制和过去的代码,只是注释此行:connection.creation.destroy_test_db(old_name, verbosity)
负责销毁测试数据库,我觉得你应该把connection.creation.create_test_db(..)
线除了这样的事情也许一试:
try:
# Create the database the first time.
connection.creation.create_test_db(verbosity, autoclobber=not interactive)
except ..: # Look at the error that this will raise when create a database that already exist
# Test database already created.
pass
3)势必setting.py TEST_RUNNER到您的测试运行。
4)现在运行测试是这样的:./manage.py测试
所以这看起来不错,但我仍然需要建立连接到本地测试数据库没有? – 2011-01-05 21:08:05
@Ryan Detzel:我刚刚编辑了我的答案,以获取更多细节,关于你的问题,我认为测试数据库上面的代码将在第一次运行测试时创建是的,这个测试数据库是由Django自动创建的: http://docs.djangoproject.com/zh/dev/topics/testing/?from=olddocs#the-test-database – mouad 2011-01-05 21:39:10
@mouad,我可以配置它,使它甚至不会加载灯具/冲洗它吗? – 2013-07-16 21:35:42
谁在使用Django> = 1.8
python manage.py test --keepdb
--keepdb果脯测试运行的测试数据库。这具有跳过创建和销毁操作的优点,这可以大大缩短运行测试的时间,尤其是在大型测试套件中。如果测试数据库不存在,它将在第一次运行时创建,然后为每次后续运行保留。在运行测试套件之前,任何未应用的迁移也将应用于测试数据库。
Django 1.6怎么样?有没有类似的方法? – 2016-08-18 06:57:05
你为什么要这么做?你也想测试数据库的创建... – 2011-01-05 16:55:45
不需要花费数小时才能建立。 – 2011-01-05 17:12:51
您可以选择不同的数据库引擎进行测试(sqlite有更快的数据库创建方式) – 2011-01-06 12:47:54