요리 책에서 나는 bash/실행 리소스와 가드를위한 유닉스 명령어를 빌드하는 방법을 공유하는 Rds :: Checks 클래스를 정의했다. LWPR 제공 업체, 조리법 및 chefspec 테스트 파일에주방 서버 테스트에서 요리 책 라이브러리를 요구하는 법
module Rds
class Checks
class << self
def ssh_config_entry_present host, config_file, key_name
"cat #{config_file} | grep #{key_name}"
end
def redmine_migrated user, pass, name
"if [ `mysql -u#{user} -p#{pass} -e 'select count(id) FROM #{name}.users;' | sed -n '2 p'` -gt 0 ]; then echo '0'; else echo '1'; fi"
end
end
end
end
가 문제없이로드,하지만 난 kitchen verify
통해 serverspec 내에서 사용할 때 오류가 제기 : 파일 라이브러리/checks.rb의 샘플입니다.
[email protected]:~/cookbooks/rds$ cat test/integration/install/serverspec/localhost/install_spec.rb
...
it 'do migrations' do
cmd = Rds::Checks.redmine_migrated
expect(command(cmd).stdout).to eq 0
end
...
[email protected]:~/cookbooks/rds$ kitchen verify
...
NameError:
uninitialized constant Rds
내가 따로 테스트 할 수 단위 및 통합 테스트에 그들에 대해 걱정하지 않도록 공통 레이어에 bash는/쉬 명령을 구축 방법을 계속 정말 좋아하는 것 당신은해야 할 것입니다
이 라이브러리를 보석으로 공유하고이를 Gemfile에 추가하는 해결책 일 수 있습니까? – sekipaolo
물론 더 많은 작업이 필요합니다. 당신은 busser-serverspec이 그렇게 맞춤 보석을 설치하도록 강요 할 수 있지만, 그렇게 쉬운 것은 아닙니다. – coderanger
busser-rspec 및 busser-serverspec은 Gemfile을 허용하므로 사용자 지정 gem을 설치하도록 강요하는 것은 그리 좋지 않을 것입니다. – Martin