【问题标题】:Openshift python manage.py test doesn't runOpenshift python manage.py 测试不运行
【发布时间】:2017-05-19 13:22:33
【问题描述】:

我遵循了 django 文档中的 7 部分教程。 Django 项目是使用 Openshift 快速入门创建的

为什么要打字

    python manage.py makemigrations
    python manage.py migrate

在每个单元测试用例执行之前

    python manage.py test

每当我将测试用例添加到我的应用程序并将所有更改推送到 openshift 时,我都需要使用 SSH 连接到 openshift 重新键入迁移 在我可以运行测试之前 否则我会看到“没有这样的表 myapp_question”错误消息。

使用 python manage.py dbshel​​l,我看到数据库已启动并包含适当的表,因为我已经进行了所有迁移。

文档指出, Separate, blank databases are created for the tests. 为什么 openshift 需要在测试之前键入 migrate ,没有任何模型更改以及新数据库会发生什么。

我从

实例化每个测试用例
    from django.test import TestCase

并且此导入应提供开箱即用的空表所需的新数据库。

我应该在 openshift hooks 中添加一些东西还是修改 settings.py。

我可以运行测试,但我不明白为什么我不能只输入

      manage.py test

并探索结果

【问题讨论】:

    标签: sqlite python-3.x unit-testing openshift django-1.8


    【解决方案1】:

    每次使用 git 推送到 openshift 都会创建新的运行时,而无需 django 数据库迁移和模式。数据库的所有历史记录都保存在DATA 子目录中,可以使用 ssh 访问。

    django 测试需要迁移历史来重新创建用于测试目的的数据库,该数据库使用内存数据库。

    只有通过运行迁移和迁移模式来创建测试。

    如果我错了,请纠正我

    【讨论】:

    • 如果您使用的是文件系统数据库,例如 SQLite,并且没有将其粘贴在指定的持久数据目录中,那么是的,您每次都需要创建它。您可以使用一个环境变量来提供目录的位置。
    • 是的,我忘了提到我正在使用 SQLite 数据库,因为墨盒需要大量的处理时间来构建它。谢谢你的澄清。感觉自己做错了什么
    猜你喜欢
    • 2016-01-05
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多