如何在Ubuntu终端中让Django测试结果显示彩色?
解决Django测试结果无颜色的方法
方法1:改用pytest-django(最简单)
Django自带测试框架在部分场景下不会给测试结果着色,但pytest-django原生支持终端彩色输出,操作步骤如下:
- 安装依赖:
pip install pytest-django - 替换原测试命令为:
pytest backend/ --ds=backend.settings.testing -v--ds指定测试用的配置文件,-v对应原命令的verbosity=2参数
运行后PASSED(对应你说的ok)会显示绿色,FAILED(对应ko)会显示红色,直接满足需求。
方法2:给Django自带测试器添加颜色输出
如果不想更换测试工具,可以通过自定义测试运行器给结果加上ANSI颜色码:
- 在项目根目录新建
test_runner.py文件,写入以下内容:
from django.test.runner import DiscoverRunner from django.utils.termcolors import colorize class ColoredTestRunner(DiscoverRunner): def suite_result(self, suite, result, **kwargs): # 重写结果输出逻辑,为ok/ko添加颜色 for _, _ in result.failures + result.errors: print(colorize("ko", fg="red")) for _ in result.successes: print(colorize("ok", fg="green")) return super().suite_result(suite, result, **kwargs)
- 在测试用的配置文件
backend.settings.testing中添加:
TEST_RUNNER = "backend.test_runner.ColoredTestRunner"
- 继续使用原命令执行测试,就能看到带颜色的
ok和ko了。
方法3:检查终端环境变量
终端的TERM变量配置错误可能导致颜色失效,先执行echo $TERM查看输出:
- 如果输出不是
xterm-256color或screen-256color,手动设置环境变量:
export TERM=xterm-256color
设置后再执行测试命令,部分场景下可恢复颜色输出,但该方法适配性有限。
内容的提问来源于stack exchange,提问作者lbris
相关产品推荐
相关产品推荐

