Aruba gem - Configuration


Aruba の Configuration 周りについてまとめます。

Aruba.configure { |c| c.some_config = some_value } 形式で様々な設定をできます。

例として

  • Exit Timeout
  • Home Directory

の設定をしてみます。

Arubaって?

Arubaの基本については下記を参照ください

Aruba gemでCLIのテストを支援する

Timeout

タイムアウト時間を設定します。
デフォルトは15秒です。

require 'spec_helper'

RSpec.describe 'timeout', type: :aruba do
  context 'set exit_timeout' do
    before(:each) do
      Aruba.configure { |c| c.exit_timeout = 2 }
    end
    Aruba.configure { |c| it { expect(c.exit_timeout).to eq(2) } }
  end

  context 'in time' do
    before(:each) do
      Aruba.configure { |c| c.exit_timeout = 2 }
      run('sleep 1')
    end
    it { expect(last_command_started).to be_successfully_executed }
  end

  context 'timeout' do
    before(:each) do
      Aruba.configure { |c| c.exit_timeout = 1 }
      run('sleep 4')
    end
    it { expect(last_command_started).not_to be_successfully_executed }
  end
end
  • 実行結果
$ rspec -fd -c ./spec/configuration/timeout_spec.rb

timeout
  set exit_timeout
    should eq 2
  in time
    should be successfully executed
  timeout
    should not be successfully executed

Finished in 3.22 seconds (files took 0.31093 seconds to load)
3 examples, 0 failures

Home Directory

ホームディレクトリの設定をします。

require 'spec_helper'

RSpec.describe 'home directory', type: :aruba do
  context 'default home_directory' do
    Aruba.configure { |c| it { expect(c.home_directory).to eq(Dir.home) } }
  end

  context 'set home_directory' do
    before(:each) do
      Aruba.configure { |c| c.home_directory = '/home' }
    end
    Aruba.configure { |c| it { expect(c.home_directory).to eq('/home') } }
  end
end
  • 実行結果
$ rspec -fd -c ./spec/configuration//home_directory_spec.rb

home directory
  default home_directory
    should eq "/Users/your_name"
  set home_directory
    should eq "/home"

Finished in 0.00722 seconds (files took 0.21765 seconds to load)
2 examples, 0 failures

まとめ

他の設定については

Configuration - Aruba - docs

を参照ください。