python - Django 测试运行程序忽略 --settings 选项

标签 python django testing configuration

我正在尝试使用一组不同的配置来测试我的 django 应用程序(例如,使用内存中的 sqlite3 而不是 mysql),为此我正在尝试使用另一个设置模块。我这样运行测试:

python manage.py test --settings=test_settings

但是 Django 似乎忽略了我的 test_settings 模块。我做错了什么吗?

最佳答案

test_settings是文件还是目录?

以下是我如何加载不同的测试设置。在 settings.py 的底部:

# if manage.py test was called, use test settings
if 'test' in sys.argv:
    try:
        from test_settings import *
    except ImportError:
        pass

super 奖金!如果你想使用 sqlite3 进行测试,你应该激活完整性约束,这样你就会得到与 mysql 相同的外键异常(在这个问题上浪费了很多时间)。在您项目的某些文件中:

from django.db.backends.signals import connection_created
def activate_foreign_keys(sender, connection, **kwargs):
    """Enable integrity constraint with sqlite."""
    if connection.vendor == 'sqlite':
        cursor = connection.cursor()
        cursor.execute('PRAGMA foreign_keys = ON;')

connection_created.connect(activate_foreign_keys)

关于python - Django 测试运行程序忽略 --settings 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529666/

相关文章:

python - Django同时发送xml请求

typescript - 如何在 TestCafe 中实现 Percy

java - 如何使用 EasyMock 测试文件的写入/读取

python - Django ConnectionAbortedError : [WinError 10053] An established connection was aborted by the software in your host machine

python - 计算每个单词出现的不同行数

python - 如何从 sqlite3 文件在 python 中生成模型类

django - 仅过滤 Django 中的注释

javascript - 如何在 jasmine 中测试一个函数

python - 在列表列表中搜索字符串

python - 链接到 Django 1.3 中的静态文件的问题