我使用sshUnit2创建了测试[shUnit2是基于Bourne的shell脚本的xUnit单元测试框架]。执行测试后,我可以看到控制台上的执行情况,包括测试状态。我想将包含错误/异常的输出重定向到网页,就像rspec中的rake任务一样。非常感谢您的帮助。
答案 0 :(得分:1)
在终端中键入命令时,您将从stdout获得正常输出。如果要查看stderr中的错误,则必须将2>&1
附加到命令(YOUR_COMMAND 2>&1
),将它们从stderr重定向到stdout。
要在Web浏览器中查看命令的输出,可以将输出通过管道传输到netcat(例如YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER
)。现在命令等待,直到您将Web浏览器导航到localhost:PORT_NUMBER
。打开URL后,netcat将打印一些特定于服务器客户端的内容,然后退出。您可以通过将netcat输出重定向到/ dev / null(YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER 2>&1 >/dev/null
)来阻止netcat输出。
如果要在浏览器中加载内容后保持“命令输出服务器”处于活动状态,则必须循环执行该命令。使用while true
,您可以无限循环。所以while true; do YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER 2>&1 >/dev/null; done
要保持服务器活着。最后使用&
,您可以在后台运行整个事情。
例如,您的最终命令可能如下所示:
while true; do date 2>&1 | netcat -l -p 8888 2>&1 >/dev/null; done &
(浏览到127.0.0.1:8888
以查看当前日期和时间)