2017-03-02 19 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,但可以通過傳入其他參數來更改這些輸出。這可能是捕獲這些數據的最簡單方法,可以傳遞替代輸出流。