除非指定了–use-color,否则测试单元将使用控制台而不是tmux生成颜色
如果我创建一个新的Rails(3.2.12)应用程序。 将test-unit
gem添加到我的开发,测试组,然后是scaffolded资源。 当我从Mac console.app运行测试时,我得到了颜色输出。
bundle exec rake test
当我为应用程序创建一个tmux会话(在console.app中)并运行完全相同的命令。 我没有得到颜色输出。 但是,如果我通过“–use-color”开关,那么我会在tmux中获得测试的颜色输出。
bundle exec rake test TESTOPTS="--use-color"
我在我的tmux.config
使用set -g default-terminal "screen-256color"
设置256种颜色。 当我在没有TESTOPTS的情况下运行rake任务时,我知道为什么我没有在tmux中获得颜色?
似乎测试单元通过(主要)查看TERM环境变量来猜测终端是否支持颜色。 不幸的是, screen-256color
不满足它所做的检查 。
可能有理由要求将其对screen
识别扩展到包括screen-256color
。
我认为您可以删除配置文件中的一些条目以提供默认参数。 将test-unit.yml
(在当前目录中)或~/.test-unit.yml
(主目录中的“隐藏”文件)中的第一个:
runner: console console_options: arguments: --use-color=yes