こんにちは、M-Yamashitaです。
プライベートでの4月の慌ただしさが少しなくなりましたが、まだまだ落ち着きそうにはなさそうです。
それでは4月の振り返りです。
インプット
今月のインプットはありません。
アウトプット
記事
記事の投稿はありません。
OSS
4月は、actへのPull Request1件と、parallel_testsへのIssue1件を出しました。
- Pull Request
actへのPull Requestを出そうとしたきっかけは、以前からactのリポジトリでピン留めされていたこのIssueを見たためです。(今はピン留めが外されているようです)
そのIssue内に書かれている1つの課題が、今回できそうなContributionだったのでチャレンジしてみました。
- Issue
このparallel_testsのIssueは、私がparallel_testsを触ったときに感じた改善してほしい内容となります。現在のparallel_testsでは、コアごとの失敗したテストは、コアごとのテスト結果に表示されるだけで、各コアごとの失敗したテストをまとめて表示できるようにはなっていません。
以下のような例では、1つ目のコアで失敗した2つのテストと、2つ目のコアで失敗した1つのテストがあることが分かります。ですが、210 examples, 3 failures
の後に、3つのテストがどこで失敗したのかということを表示していません。
bundle exec parallel_rspec -n 2 2 processes for 19 specs, ~ 9 specs per process ・・・ Finished in 0.19009 seconds (files took 0.51351 seconds to load) 111 examples, 2 failures Failed examples: rspec ./spec/knapsack/config/env_spec.rb:22 # Knapsack::Config::Env.ci_node_total when ENV exists when CI_NODE_TOTAL has value is expected to eql 4 rspec ./spec/knapsack/adapters/base_adapter_spec.rb:12 # Knapsack::Adapters::BaseAdapter.bind is expected to receive binder ・・・ Finished in 1.9 seconds (files took 0.51647 seconds to load) 99 examples, 1 failure Failed examples: rspec ./spec/knapsack_spec.rb:7 # Knapsack.tracker is expected to eql 111 Randomized with seed 11799 210 examples, 3 failures Took 2 seconds Tests Failed
なぜこれを問題視しているかというと、複数のコアで大量のテストを実行し各コアで複数のテストが失敗した際、失敗したテストを探すために毎回Failed examples
で検索する必要があります。「検索せずにスクロールして失敗したテストを見つければいいのでは?」という考えもありますが、テストのログが大量に出ている場合、スクロールで失敗したテストを見つけるのは結構大変です。
これをIssueで聞いたところ、RSpec: FailuresLoggerがあるよとコメントされ、Issueがクローズされました。
コメントはありがたかったのですが、これだとpendingのテストまでファイルに出力されてしまうため、私の求めるものとはちょっと違いそうと考えています。
このIssue後、自分で機能追加していい感じに動くことを確認できたので、今後実際に使ってみる予定です。
登壇
4月の登壇はありません。
所感
今月はOSSに焦点をあてた月となりました。
コードリーディングや実装方法に結構時間を取られてしまいましたが、また1つ既存の仕組みを理解できた良い月となりました。
また今後も一歩一歩進めていきます。