Iはinifile宝石を使用してServerspec試験を持っている:「未定義の方法 `[]」ゼロの場合:NilClass」エラーServerspecテストを実行するリモート
require 'spec_helper'
require 'inifile'
describe 'inifile test -' do
file = '/tmp/testfile1.ini'
file_ini = IniFile.load(file)
it 'testfile1.ini should contain expected values' do
expect(file_ini['section1']['variable1']).to eq('value1')
end
end
rake
のいずれか(マシン上でローカルに実行された場合にテストに合格UbuntuゲストまたはOS Xホストの場合、inifile
gemがインストールされています)。しかし
、私はベイグラントボックスに対してrake
を実行する(すなわち、ベイグラント上のUbuntuにSSHで接続するホスト上で)、それは次のメッセージで失敗します。
1) inifile test - testfile1.ini should contain expected values
On host `molecule-test'
Failure/Error: expect(file_ini['section1']['variable1']).to eq('value1')
NoMethodError:
undefined method `[]' for nil:NilClass
# ./spec/inifile_spec.rb:8:in `block (2 levels) in <top (required)>'
私はServerspecのデフォルトRakefile
とspec_helper.rb
を使用しています。テストは関係なく、コンテンツの失敗が
/tmp/testfile1.ini
は、以下の通りである:
[section1]
variable1=value1
それはエスケープ文字ではないとの問題のいくつかの種類のように私には思われるが、私は本当にわかりません。
何が間違っていますか?
あなたの迷彩のインスタンス。そこからトラブルシューティングを開始します。また、 'file_ini = IniFile.load(file)'はほぼ確実にローカルで実行され、リモートでは実行されません。 –
興味深い...それがローカルコールの場合は、すべて意味があります。しかし、その後、Serverspecはどのようにリモートで動作しますか?チェック...はい、ホスト上でローカルにファイルを作成すると、他のタスクがリモートで実行されても機能します。 – techraf