我想打开一个文件并输出tail -f
。我希望能够在测试开始时在子进程中打开文件,执行测试,然后从尾部开始处理输出。
我尝试使用Run Process
,但这只是旋转,因为进程永远不会终止。我尝试使用Start Process
后跟Get Process Result
,但收到错误Getting results of unfinished processes is not supported.
这可能吗?
答案 0 :(得分:2)
没有必要tail -f
。在测试开始时,您可以获取文件中的字节数。让测试运行,然后从先前计算的字节偏移开始读取文件(或读取整个文件,并使用切片查看新数据)
答案 1 :(得分:0)
tail -F命令在终止之前不会完成,因此您无法获得结果。 您有两种方法可以满足您的需求。
首先,在获得它之前终止尾程:stdout:
${result} = start Process tail -F tailtest alias=tail
#test case stuff starts here
#...
#test case stuff ends here
terminate process tail
${result} Get Process Result tail stdout=True
log ${result}
你可以做"启动流程"并终止它并在测试设置/拆解中获得结果。
另一个选项是将输出重定向到文件,并获取此文件内容:
${result} = start Process tail -F tailtest stdout=tailoutput alias=tail
#test case stuff starts here
#...
#test case stuff ends here
${result} get file tailoutput
log ${result}
如果你终止尾部过程,这将是更清洁的解决方案。
当尾部输出很大时,第二种方法更好 - 在以下情况下避免出现问题:"输出缓冲区可能已满,程序可能会挂起"。