我正在使用watir-webdriver [ruby]运行一些测试,在这些测试中我添加了几个put语句,这些语句将打印到控制台。在终端/命令提示符下运行时,消息会立即打印到控制台。
但是当我从Hudson运行相同的测试时,打印不会实时发生。相反,它将等到作业完成,最后它将一次性转储所有打印件。
这样,我无法检查我的测试是否正常运行以及它们的实时状态。
对此有什么解决方案吗?
由于 Sudhi
更新:
亚当 这确实对我有用。我的代码片段看起来像这样。
stdout.sync = true
class TC_MyTest < Test::Unit::TestCase
$stdout.sync = true
def test_sample
$i=0
@@log.debug "Running the scenario = "+@@SCENARIO
puts "Running the scenario = "+@@SCENARIO
while $i<@@LOOPCOUNT
@@log.debug "Running the loop # "+$i.to_s
puts "Running the loop # "+$i.to_s
# Clean up the system
killOldProcesses()
end
end
end
答案 0 :(得分:1)
此语句禁止缓冲文本以便立即显示 - 将其放在脚本的顶部(对于Cucumber,我将它放在支持目录中的文件顶部):
$stdout.sync = true
您使用的是其他任何框架/宝石吗?我有一个问题,Jenkins没有实时显示Cucumber脚本中的puts语句。解决方案是将这些put语句移动到我的Page Object pages而不是步骤文件(功能 - &gt;步骤 - &gt;页面)。
使用这两个约定,我可以根据需要实时获得Jenkins输出。