python - 详细记录 Django 测试

标签 python django testing

我正在寻找一种方法,仅当 Django 测试以高冗长级别运行时才写入控制台。 例如 - 当我运行时

python manage.py test -v 3

它会将我的消息记录到控制台,但是,当我运行时

python manage.py test -v 0

它不会记录我的消息。

我尝试在代码中使用 logger.info() 但消息根本没有显示。

有什么建议吗?

最佳答案

-v 控制测试运行器本身的详细程度(例如:数据库创建等),而不是应用日志记录的详细程度。

您真正想要的是更改 Django 应用程序本身的日志记录级别,如 logging documentation 中所述。 .

您可能只想为测试覆盖日志记录设置,或者您可以使用 --debug-modesettings.DEBUG 设置为 True,并在您的 settings.py 中包含特定于 DEBUG 的配置(这很常见,因为它在开发时也有帮助)。

这是如何实现后者的基本示例:

'loggers': {
    '': {
        'handlers': ['console', 'sentry'],
        'level': 'INFO',
    },
    'myapp': {
        'level': 'DEBUG' if DEBUG else 'INFO',
        'propagate': True,
    },
}

关于python - 详细记录 Django 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37729901/

相关文章:

django - 在 Django 中设置翻译 - Makemessages 不创建文件

python - Django ImageField 默认值

javascript - 我无法使用 protractor-perf 运行测试示例

testing - cargo test --release 导致堆栈溢出。为什么没有货台?

python - 如何找到 3 channel 图像的均值和标准差

Python HTML 生成器

python - Plotly:如何将刻度文本设置为斜体?

django - 检查模板中的request.GET变量

java - 将生产代码修改为可测试/仅用于测试目的是最佳做法吗?

python - 按列表顺序从列表中选择 Pandas 数据框的行