Codeception bash颜色输出不显示
Posted
技术标签:
【中文标题】Codeception bash颜色输出不显示【英文标题】:Codeception bash color output does not display 【发布时间】:2015-05-07 20:55:00 【问题描述】:我已经用 Codeception 和 PhantomJS 进行了一段时间的测试,但是我什么时候必须调试和运行
vendor/bin/codecept run --debug
颜色设置为真我得到的是:
Modules: ←[33mWebDriver, AcceptanceHelper←[39m
等等...所以由于某种原因,颜色只是以原始格式输出并且根本不起作用。颜色通常有效。就像我使用“ls --color”一样,它就可以工作。 我的系统是 Windows 7,我使用的是“git bash”,我也尝试过常规的“cmd”“powershell”和“cygqwin”。它们中的任何一个似乎都不适用于 codeceoptions 输出。 那么问题是什么?我一无所知:(
【问题讨论】:
可以添加echo $TERM
的输出吗?
程序不应假定颜色代码将是 ansi 转义序列 - 尽管它们通常是 - 它应该采用的方式是 'tput setaf 您的应用程序 (Codeception) 未适应不支持 ANSI 着色的 Windows 控制台。要启用 ANSI 颜色,您可以选择以下选项之一:
ConEmu 是 Windows 本地终端,具有 ANSI capabilities 和许多其他功能,如选项卡、拆分、预配置的 shell 任务……此外,它是唯一能够 "replace" default Windows console 的终端。是的,我是作者。 某些应用程序可能在 mintty(与 cygwin 或 msys 捆绑)中正常工作。许多本机 Windows 控制台工具无法在此终端中正常工作,但您的应用可能会很好。 有 AnsiCon 项目。它在标准 Windows 控制台中启用 ANSI 着色。顺便说一句,bash 的 ls(cygwin 或 msys)适用于 Windows 控制台 API,因此它不会将 ANSI 发布到终端,除非终端已对 POSIX 子系统进行了特殊初始化。 ConEmu 可以通过cygwin/msys connector 进行此初始化。
【讨论】:
【参考方案2】:在 bash 中,尝试运行
export TERM=ansi
或
export TERM=xterm
在运行程序之前
或者,测试外壳本身的颜色输出:
echo -e "\e[41m\e[32mCOLOR\e[0m"
如果它确实有效,那么它是程序,而不是环境
最后,您可能只需要一个更好的控制台。 试试 conemu,它具有出色的 ansi 颜色支持,我将它用于 cmd powershell bash perl 和 ssh 会话:) http://sourceforge.net/projects/conemu/
【讨论】:
Bash 不处理来自子进程的 ANSI,只有 mintty 这样做。因此,更改 TERM 很可能不会产生任何影响。以上是关于Codeception bash颜色输出不显示的主要内容,如果未能解决你的问题,请参考以下文章
以红色显示真实 HTML 中的文本,而不是显示颜色代码为 color:#de350bduchessecolor 的文本
如何在我的 Windows git-bash 终端上获得彩色输出?