运行py.test测试的作业的Jenkins控制台输出包含意外字符“[1m”“[0m”喜欢
[1m============== test session starts ==============[0m
显然这些字符是来自py.test输出格式的剩余部分(“测试会话开始”在终端窗口中显示为粗体和彩色)。有没有办法禁用输出格式? py.test的“--color no”选项是不够的。
答案 0 :(得分:0)
在Jenkins中安装AnsiColor插件。在其配置面板中,将有一个带有xterm色图的新项目“ Ansi Color”
您的管道应包含以下内容:
stage('Pytest'){
wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'xterm']) {
sh """
source ./$PYTHON3_ENV_NAME/bin/activate
# Execute tests
python3 -m pytest test_cases/${TEST_FILTER} --color=yes ....
"""
}
}
在运行期间,您应该会看到pytest阶段的颜色。
如果您看到bash颜色格式但没有看到颜色,请在浏览器上按F5键!
里卡多
答案 1 :(得分:0)
在我的情况下,我通过诉诸詹金斯(Jenkins)描述性管道在docker内部运行pytest,因此需要验证以下几点:
首先,将ansiColor
添加到options
pipeline {
...
options {
ansiColor('xterm')
...
}
...
}
第二,确认您已将docker run
命令添加到标志-t
-t:分配一个伪tty
对于docker-compose,它为tty: true
第三,您可以通过在pytest命令中添加--color=yes
来强制着色
python -m pytest --color=yes ...
-color =彩色终端输出(是/否/自动)。