문제

나는 보석을 만들고 있습니다

  • 빈 디렉토리의 여러 스크립트
  • 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을 살펴보면 다른 보석의 도우미입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top