一連のRspecテストをプログラムで実行し、それぞれの出力をキャプチャしようとしています。プログラムでrspecテストを実行して出力をキャプチャする方法は?
私はこれまで持っていることはこれです:これは正しく指定したファイルを実行しない、と私はからこのスクリプトを実行し、端末に私は期待してJSON出力を参照してください...しかし、以来
RSpec.configure do |config|
config.formatter = :json
end
out = StringIO.new
err = StringIO.new
RSpec::Core::Runner.run([file], err, out)
私はランナーにStringIO
ストリームを与えています。JSON出力をstdoutの代わりに書き込むことを期待しています。この場合、アウトストリームは常に空です。
誰でも私が間違っていることを知っていますか?
'$ stdout'に行くすべてのものをファイルに書き込むことができます。それが役に立ったら http://stackoverflow.com/questions/26894443/intercepting-all-puts-and-print-statements-from-a-ruby-program –
私は '$ stdout = StringIO.new'ですが、まだ画面上に出力があり、$ stdoutには何もありません。空のStringIOオブジェクトです。 –
仕様が失敗したかどうかを知る必要があり、 'run'関数が成功すれば0、失敗したときに1を返します。なぜ出力ストリームがうまくいかないのかまだ分かりません。 –