2017-03-02 20 views
0

显示输出,我通过执行运行黄瓜脚本:如何使用OUT = STDOUT,ERR = STDERR黄瓜:: CLI的主要::在HTML

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

我想从输出黄瓜变成一个变量,并将其显示在屏幕上。我通过创建文件来实现它:

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. 在黄瓜脚本执行过程中发生异常时会发生什么?例如:黄瓜运行脚本。它不断输出到STDOUT。突然,错误。它打破了。输出到STDERR。鉴于我必须在屏幕上显示它,如何通过从STDOUTSTDERR中读取来在主屏幕上显示正常的HTML文件?

回答

1

当一个程序运行时,控制台中出现的东西将被发送到STDOUT或STDERR。通常,STDOUT是正常输出出现的位置(如结果),而STDERR是发送错误消息的地方。这些是standard streams

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