문제
나는 보석을 만들고 있습니다
- 빈 디렉토리의 여러 스크립트
- LIB 디렉토리의 유틸리티 클래스
- 테스트 디렉토리의 여러 테스트
supertool bin toolA toolB lib supertool supertool.rb helper.rb test tc_main.rb tc_etc.rb
이제 보석을 설치하기 전에 테스트를 실행하려면 테스트 상단에 다음 스 니펫이 있습니다.
base = File.basename(Dir.pwd)
if base == 'test' || base =~ /supertool/
Dir.chdir('..') if base == 'test'
$LOAD_PATH.unshift(Dir.pwd + '/lib')
Dir.chdir('test') if base =~ /supertool/
end
그러나 이것은 지루한 것 같습니다. 특히 BIN 디렉토리의 스크립트에 이것을 넣어야한다면. 보석이 설치되기 전에 테스트 할 수 있도록 환경을 설정하는 더 좋은 방법이 있습니까? 나는 그것이 내가 찾을 수없는 것이 간단하다고 확신합니다. 올바른 장소에 대한 간단한 링크는 많은 도움이 될 것입니다 :)
해결책
나는 당신이 그 대본으로 무엇을 달성하려고 노력하는지 잘 모르겠습니다. 보석과 관련이없는 것 같습니다 ...
실행할 수 있도록해야합니다 ruby tc_main.rb
테스트 디렉토리 내에서 (또는 ruby test/tc_main.rb
기본 DIR)에서로드 경로를 적절하게 설정 했습니까? 그렇다면 여기에 훨씬 더 좋은 방법이 있습니다.
테스트 디렉토리에서 a를 작성하십시오 test_helper.rb
파일. 그 파일에서 이것을 넣으십시오
$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )
그리고 모든 테스트 파일에서 첫 번째 줄을
require 'test_helper'
테스트 딥 내부에 하위 디렉토리가있는 경우 해당 하위 디어의 파일은 그냥 할 수 있습니다.
require '../test_helper'
다른 팁
Hoe Gem을 살펴보면 다른 보석의 도우미입니다.
제휴하지 않습니다 StackOverflow