如何在Cucumber :: Cli :: Main中使用out = STDOUT,err = STDERR以HTML格式显示输出

时间:2017-03-02 13:22:54

标签: ruby cucumber jruby

我正在执行:

运行黄瓜脚本
Cucumber::Cli::Main.new(args).execute!

我试图将Cucumber的输出变为变量,并将其显示在屏幕上。我通过创建文件使其工作:

Cucumber::Cli::Main.new(args).execute!

将内容输出到文件,从文件中读取并显示。

require 'cucumber'

output = File.open('index.html', 'w+')
features = "features/login.feature"
@args = features.split.concat %w(--format html)
Cucumber::Cli::Main.new(@args, out=output).execute!

Here是源代码。

enter image description here

  1. 当黄瓜输出到STDOUTSTDERR时会发生什么?我怎样才能从这两个文件中读取文件?
  2. 在黄瓜脚本执行过程中引发异常时会发生什么?例如:Cucumber运行脚本。它会一直输出到STDOUT。突然,错误。它打破了。输出到STDERR。鉴于我必须在屏幕上显示它,如何通过阅读STDOUTSTDERR来显示主屏幕上的普通HTML文件?

1 个答案:

答案 0 :(得分:1)

当程序运行并且控制台中出现某些内容时,它将被发送到STDOUT或STDERR。通常,STDOUT是出现正常输出的地方(例如结果),STDERR是发送错误消息的地方。这些是standard streams

定义此函数的方式默认情况下输出将转到STDOUT和STDERR,但这些可以通过传入替代参数来更改。这可能是捕获此数据的最简单方法,传递其他输出流。