概要
RSpecのコードリーディングをする。
準備
- RSpecのリポジトリをクローンする。
コードリーディング
- RSpecの呼び出し
- rspec/rspec-core/blob/main/exe/rspec#L4
- エントリーポイント
- lib/rspec/core/runner.rb#L43
- Runnerクラスのクラスメソッドであるinvokeを呼び出す
disable_autorunメソッドは、自動実行機能を無効にする
- RSpecの実行
- lib/rspec/core/runner.rb#L64
- Runnerのクラスメソッドであるrunを呼び出す
trap_interruptメソッドは、Ctrl+Cなどの中断時の処理を行う- optionsにrunnerがあれば
call、なければnew.run
- lib/rspec/core/runner.rb#L85
- テスト実行が早期に終了した場合はレポーティングの処理を呼び出す
- 早期終了しない場合は、
run_specsメソッドを呼び出す
- lib/rspec/core/runner.rb#L113
- テストを順次実行して結果をレポーティングし、終了コードを返す