在终端中更改 Pytest 颜色输出

问题描述 投票:0回答:2

我正在尝试更改终端中 pytest 的颜色输出,但未能做到这一点。我当前在终端中更改颜色输出的设置可以在here找到,但似乎不适用于 pytest。然而,pytest 输出当前是彩色的,但我想更改颜色。例如,当运行 pytest 测试时,出现错误,输出为红色,我希望它为蓝色。

如何更改 pytest 颜色输出中使用的颜色?

macos terminal python-3.6 pytest
2个回答
0
投票

你可以尝试猴子补丁

LOGLEVEL_COLOROPTS
但我怀疑你能取得多大成就。看来颜色是硬编码的。请参阅示例 terminal.py


0
投票

您可以使用管道外部脚本,例如我的colorTail.pl

python -m pytest -vv | perl ~/scripts/colorTail.pl 

所以代替这个: Original pytest console output

你会得到这个: enter image description here

#!/usr/bin/perl -w

print "\e[1;32m==================================================================================================\n";
print "\e[1;33m## colorTail.pl by David G. Folch ##\n";
print "\e[1;32mColorTail gives color to your console outputs.\n";
print "Optionally accepts a regex parameter, this regex (not casesensitive) will be colored in green\n";
print "Example: tail /var/logs/*.log | perl colorTail.pl\n";
print "Example: tail /var/logs/*.log | perl colorTail.pl myCustomGreenColoredMatchRegexText\n";
print "==================================================================================================\e[0m\n";
$markedText=$ARGV[0];
if (!defined($markedText)) {
    $markedText="A# Z#";  #UN TEXTO QUE SEA MUY POCO PROBLABLE QUE LO ENCUENTRE
}
while(<STDIN>) {
    my $line = $_;
    chomp($line);
    for($line){
        s/fatal.*|error.*|.*exception.*|\tat .*/\e[0;31m$&\e[0m/gi;
        s/$markedText|cuda[0-9a-z_]*|gpu[0-9a-z_]*|info .*|.*user-agent=.*|RemoteAddr=.*| interceptors\.[^ ]+| com\.lm\.[^ ]+| util\.[^ ]+| cronjobs\.[^ ]+/\e[1;32m$&\e[0m/gi;
        s/warn.*|ACTION URL=.*/\e[1;33m$&\e[0m/gi;
        s/debug.*/\e[1;35m$&\e[0m/gi;
    }
    print $line, "\n";
}
© www.soinside.com 2019 - 2024. All rights reserved.