针对测试数据库运行迁移

dan*_*ast 5 python migration django

我不希望在每个测试轮之前运行迁移,这就是我运行测试的原因--reusedb --nomigrations

我仍然需要设置数据库一次。为此,我这样做:

python manage.py migrate
Run Code Online (Sandbox Code Playgroud)

我如何告诉migrate以“测试”模式运行,以便使用正确的数据库(使用test_)?

Sto*_*ker 1

Django 测试运行程序为测试设置单独的数据库,该数据库源自settings.py. 如果您单独设置测试数据库,测试运行程序将使用它。

如果您仍然需要在测试数据库中运行一些迁移,您可以运行migrate--database选项的命令。

python manage.py migrate --database test

您可以在测试用例中指定目标数据库:

class TestMyViews(TransactionTestCase):
    databases = {'default', 'other'}

    def test_index_page_view(self):
        call_some_test_code()
Run Code Online (Sandbox Code Playgroud)

迁移命令文档

带有数据库文档的测试用例

  • 它是一个前缀,而不是后缀:`test_something`。我不想在运行“manage.py”命令时关心这些细节:我希望 django 做正确的事情,也就是说,它在运行单元测试时已经做了同样的事情。如何告诉“manage.py migrate”使用与运行测试时相同的数据库名称?我有很多数据库,为每个数据库手动调用 manage.py 太容易出错。 (4认同)