最近、手元でRSpecを全部流すなんてことはあんまり無くなってきた。
CIサービス上で結果は確認できても、色々情報を収集したり加工したりしたい場合ローカルのファイルシステムに吐くより、S3とかGCSとかに吐ける方が何かと便利なことが多い。
というわけで、gemで何とかしてみた。
https://github.com/joker1007/rspec-storage
RSpec自体にこういう処理を差し込めるAPIが無いので、出来るだけメンテしやすい形でモンキーパッチを当てている。
こんな感じで使う。(GCSの場合はgs://)
$ rspec -r rspec/storage spec/example_spec.rb -f doc -f json -o s3://your-bucket/spec_result.json
パースして加工することを前提にするならjsonフォーマットで吐いておくのが良いだろう。
RSpecのCLIオプションをごりごり拡張するのはイマイチ筋が悪いと思ったので認証情報やリージョン情報は、基本的に環境変数経由かIAM的なものを利用することを想定している。
とりあえずS3とGCS対応のプロバイダーは書いたが、URLスキーマを決めてハンドリング方法を定義すれば、構造上何にでも転送できるはず。
RedisとかRDBに突っ込むプロバイダーも書けそうだが、自分では用途が無いので実装はしていない。
もし、そういう感じのことがしたい人が居たらPRいただけると助かります。