Open5

CircleCIメモ

あーあー

[用語] CI (Continuous Integration) 継続的インテグレーション

テストや静的コード解析などの作業を自動化し、継続的に実行する手法

あーあー

[用語] CD (Continuous Delivery) 継続的デリバリー

デプロイ作業を自動化し、継続的に実行する手法

あーあー

spec高速化メモ

■ let_it_be の導入

https://zenn.dev/offers/articles/20220526-rspec-tips-description#テスト実行時間の短縮のためにやっていること

■ create 文が不要なときは build を使う

例えば create ver

describe '#full_name' do
  let(:user) { create(:user, first_name: '太郎', last_name: '田中') }

  it 'should return full name' do
    expect(user.full_name).to eq "田中 太郎"
  end
end

-> 5.48s かかる

こちら(build ver)では

describe '#full_name' do
  let(:user) { build(:user, first_name: '太郎', last_name: '田中') }

  it 'should return title' do
    expect(user.full_name).to eq "田中 太郎"
  end
end

-> 0.62281s

ぜんぜん違う!

■ テストの分散実行

これはテスト記述ではないですが、parallel_testsのような gem を利用して、テストファイルを幾つにも分割し、パラレル実行させることで全体のテスト実行時間を短縮が可能です。

参考
https://zenn.dev/offers/articles/20220526-rspec-tips-description#テスト実行時間の短縮のためにやっていること