概要
rspec command | format option
詳細
rspec commandのformat optionで出力フォーマットを制御できます。
サンプルテストコード(hoge_spec.rb)
# encoding: utf-8 require "spec_helper" require "hoge" describe Hige do it "hoge1 1" do # some spec end it "hoge1 2" do # some spec end it "hoge2" do # some spec end end
サンプルテストコード(hige_spec.rb)
# encoding: utf-8 require "spec_helper" require "hige" describe Hige do it "hige1 1" do # some spec end it "hige1 2" do # some spec end it "hige2" do # some spec end end
rspec formatを試す
ドキュメントフォーマット rspec -fs
ドキュメントフォーマット
$ rspec -fs または rspec -fd Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} Hige hige1 1 hige1 2 hige2 Hoge hoge1 1 hoge1 2 hoge2 Finished in 0.00101 seconds 6 examples, 0 failures
進捗率フォーマット rspec -fp
進捗率フォーマット
各テスト結果が ".F*" のフォーマットで表示されます
$ rspec --format progress Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} ...... Finished in 0.00101 seconds 6 examples, 0 failures $
HTMLフォーマット rspec -fh
HTMLフォーマット
$ rspec -fh > result.html
HTMLの結果をブラウザで確認します。
フィルタ用のチェックボックスがあるので、成功ケース・失敗ケースだけ
確認することも可能です。
JSONフォーマット rspec -fj
JSONフォーマット。
テスト結果を二次加工したり、
結果をトリガーに別の処理をしたりするのに使えそうですね。
rspec -fj > result.json
result.json
{"messages":["Run options: include {:focus=>true}","\nAll examples were filtered out; ignoring {:focus=>true}"],"examples":[{"description":"hige1 1","full_description":"Hige hige1 1","status":"passed","file_path":"./spec/hige_spec.rb","line_number":6},{"description":"hige1 2","full_description":"Hige hige1 2","status":"passed","file_path":"./spec/hige_spec.rb","line_number":10},{"description":"hige2","full_description":"Hige hige2","status":"passed","file_path":"./spec/hige_spec.rb","line_number":14},{"description":"hoge1 1","full_description":"Hoge hoge1 1","status":"passed","file_path":"./spec/hoge_spec.rb","line_number":6},{"description":"hoge1 2","full_description":"Hoge hoge1 2","status":"passed","file_path":"./spec/hoge_spec.rb","line_number":10},{"description":"hoge2","full_description":"Hoge hoge2","status":"passed","file_path":"./spec/hoge_spec.rb","line_number":14}],"summary":{"duration":0.0,"example_count":6,"failure_count":0,"pending_count":0},"summary_line":"6 examples, 0 failures"}
# encoding: utf-8 require 'json' require 'pp' str = '{"messages":["Run options: include {:focus=>true}","\nAll examples were filtered out; ignoring {:focus=>true}"],"examples":[{"description":"hige1 1","full_description":"Hige hige1 1","status":"passed","file_path":"./spec/hige_spec.rb","line_number":6},{"description":"hige1 2","full_description":"Hige hige1 2","status":"passed","file_path":"./spec/hige_spec.rb","line_number":10},{"description":"hige2","full_description":"Hige hige2","status":"passed","file_path":"./spec/hige_spec.rb","line_number":14},{"description":"hoge1 1","full_description":"Hoge hoge1 1","status":"passed","file_path":"./spec/hoge_spec.rb","line_number":6},{"description":"hoge1 2","full_description":"Hoge hoge1 2","status":"passed","file_path":"./spec/hoge_spec.rb","line_number":10},{"description":"hoge2","full_description":"Hoge hoge2","status":"passed","file_path":"./spec/hoge_spec.rb","line_number":14}],"summary":{"duration":0.0,"example_count":6,"failure_count":0,"pending_count":0},"summary_line":"6 examples, 0 failures"}' rspec_result = JSON.parse str pp rspec_result
出力
{"messages"=> ["Run options: include {:focus=>true}", "\nAll examples were filtered out; ignoring {:focus=>true}"], "examples"=> [{"description"=>"hige1 1", "full_description"=>"Hige hige1 1", "status"=>"passed", "file_path"=>"./spec/hige_spec.rb", "line_number"=>6}, {"description"=>"hige1 2", "full_description"=>"Hige hige1 2", "status"=>"passed", "file_path"=>"./spec/hige_spec.rb", "line_number"=>10}, {"description"=>"hige2", "full_description"=>"Hige hige2", "status"=>"passed", "file_path"=>"./spec/hige_spec.rb", "line_number"=>14}, {"description"=>"hoge1 1", "full_description"=>"Hoge hoge1 1", "status"=>"passed", "file_path"=>"./spec/hoge_spec.rb", "line_number"=>6}, {"description"=>"hoge1 2", "full_description"=>"Hoge hoge1 2", "status"=>"passed", "file_path"=>"./spec/hoge_spec.rb", "line_number"=>10}, {"description"=>"hoge2", "full_description"=>"Hoge hoge2", "status"=>"passed", "file_path"=>"./spec/hoge_spec.rb", "line_number"=>14}], "summary"=> {"duration"=>0.0, "example_count"=>6, "failure_count"=>0, "pending_count"=>0}, "summary_line"=>"6 examples, 0 failures"}