Behave test runner在Jenkins上没有彩色输出

zfciruhq  于 2023-03-29  发布在  Jenkins
关注(0)|答案(1)|浏览(165)

我在EC2示例上的Ubuntu服务器14.04上安装了jenkins。我使用behave作为测试运行器执行了一些selenium测试。
在Jenkins上,我还安装了AnsiColor插件,希望我可以在Jenkins控制台上获得颜色输出,但是除了Gherking语法之外,其他所有内容都有颜色。Selenium错误,python调试,所有内容都有颜色......除了behavior的输出
现在的问题是,如果我在Mac或Ubuntu上运行测试,但不是与Jenkins用户一起运行,一切都很好,颜色也在那里。
我真的没有任何代码可以发布,但我可以说我已经尝试过了:

  • 运行行为与behave --color
  • 将AnsiColorPlugin的颜色Map到formatter/ansi_escapes.py中的行为转义序列
  • #!/bin/bash添加到jenkins构建脚本中,以确保它不会使用sh而不是bash执行

如果这是任何相关的,我使用python 3.4在virtualenv
除了实际的答案,任何建议,如何调试这也是欢迎的!谢谢

lmyy7pcs

lmyy7pcs1#

阅读PrettyFormatter的原始源代码,没有办法强制它使用颜色,因为它使用isatty来确定它是否正在写入实际的终端。
然而,启用颜色输出所需的修改是微不足道的:
https://github.com/mrkafk/behave/commit/5fa2dd3fd1dc7149857df4da156d8fd00f5058a5
我已经创建了pull request,并测试了它在Jenkins中的工作情况(当然是在项目配置中启用解析ANSI代码之后):

相关问题