0

我正在编写一个watchr运行我的 PHP 单元测试的小脚本。

当前脚本使用运行测试system()并将它们显示为彩色。

我正在尝试添加libnotify功能,但为此我需要解析输出并匹配正则表达式,以便通知将显示为绿色或红色。

system()不返回输出,%x确实返回,但puts p不显示颜色,我需要快速查看哪个测试失败。一种选择是运行两次测试 - 一次用于在终端窗口中显示,第二次用于检查要显示的通知,但我宁愿避免它。

4

1 回答 1

1

puts确实显示颜色。问题是当您使用%xPHP 测试运行程序运行时,很可能会关闭彩色输出,因为它认为它没有在终端下运行。

run_php_test | less如果你在 shell 中做同样的事情。要修复它,您需要在 PHP 测试运行器上强制彩色输出。

编辑

运行子进程的最简单方法pty

require 'pty'
puts PTY.spawn('run_php_test')[0].read
于 2012-06-24T14:49:52.633 回答