在 Robot Framework 中跟踪日志文件
tail a log file in Robot Framework
我想打开一个文件并 tail -f
输出。我希望能够在子进程中的测试开始时打开文件,执行测试,然后从尾部开始处理输出。
我试过使用 Run Process
,但那只是旋转,因为进程永远不会终止。我尝试使用 Start Process
后跟 Get Process Result
,但我收到一条错误消息 Getting results of unfinished processes is not supported.
这可能吗?
不需要tail -f
。在测试开始时,您可以获得文件中的字节数。让测试运行,然后从你之前计算的字节偏移量开始读取文件(或者读取整个文件,并使用切片查看新数据)
tail -F 命令在终止之前不会完成,因此您无法获得结果。
您有两种方法可以满足您的需求。
首先,在获取标准输出之前终止 tail 进程:
${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}
您可以执行 "start process" 并终止它并在测试 setup/teardown 中获得结果。
另一个选项是将输出重定向到一个文件,并获取此文件内容:
${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}
如果您无论如何终止 tail 进程,这将是更清洁的解决方案。
当尾部输出较大时,第二种方法更好 - 避免出现以下问题:"the output buffers may get full and the program can hang"。
我想打开一个文件并 tail -f
输出。我希望能够在子进程中的测试开始时打开文件,执行测试,然后从尾部开始处理输出。
我试过使用 Run Process
,但那只是旋转,因为进程永远不会终止。我尝试使用 Start Process
后跟 Get Process Result
,但我收到一条错误消息 Getting results of unfinished processes is not supported.
这可能吗?
不需要tail -f
。在测试开始时,您可以获得文件中的字节数。让测试运行,然后从你之前计算的字节偏移量开始读取文件(或者读取整个文件,并使用切片查看新数据)
tail -F 命令在终止之前不会完成,因此您无法获得结果。 您有两种方法可以满足您的需求。
首先,在获取标准输出之前终止 tail 进程:
${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}
您可以执行 "start process" 并终止它并在测试 setup/teardown 中获得结果。
另一个选项是将输出重定向到一个文件,并获取此文件内容:
${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}
如果您无论如何终止 tail 进程,这将是更清洁的解决方案。
当尾部输出较大时,第二种方法更好 - 避免出现以下问题:"the output buffers may get full and the program can hang"。