【发布时间】:2019-07-10 08:45:20
【问题描述】:
我不希望在每个测试轮之前运行迁移,这就是我使用 --reusedb --nomigrations 运行测试的原因
我仍然需要设置数据库一次。为此我这样做:
python manage.py migrate
我如何告诉migrate 在“测试”模式下运行,以便使用正确的数据库(使用test_)?
【问题讨论】:
-
你找到这个问题的答案了吗?
我不希望在每个测试轮之前运行迁移,这就是我使用 --reusedb --nomigrations 运行测试的原因
我仍然需要设置数据库一次。为此我这样做:
python manage.py migrate
我如何告诉migrate 在“测试”模式下运行,以便使用正确的数据库(使用test_)?
【问题讨论】:
Django 测试运行器为测试设置单独的数据库,该数据库源自您的settings.py 中的数据库。如果您单独设置测试数据库,测试运行器将使用它。
如果您仍需要在测试数据库中运行一些迁移,您可以运行带有--database 选项的migrate 命令。
python manage.py migrate --database test
您可以在测试用例中指定您的目标数据库:
class TestMyViews(TransactionTestCase):
databases = {'default', 'other'}
def test_index_page_view(self):
call_some_test_code()
【讨论】:
test_something。我不想在运行manage.py 命令时关心这些细节:我希望 django 做正确的事情,也就是说,它在运行单元测试时已经在做同样的事情。我如何告诉manage.py migrate 使用与运行测试时相同的数据库名称?我有很多数据库,为每个数据库手动调用 manage.py 太容易出错。