2012-05-20 3 views
3

RSpec에서 테스트하고있는 Rails 보석이 있습니다. 보석의 코드가 lib/my_gem에 있고, test/dummy 폴더에 보석을 만들 때 Rails가 생성 한 테스트 응용 프로그램이 있습니다. test/dummy/spec/models/task_spec.rb에 내 스펙이 있습니다. rspec 명령으로이 스펙을 잘 실행할 수 있습니다.레일 엔진 테스트/더미가있는 Spork, Guard, RSpec?

이제 테스트를 위해 Spork and Guard를 사용하고 싶습니다. 나는 RailsCasts http://railscasts.com/episodes/285-spork을 따라 테스트/더미 어플리케이션에 spork을 설치했습니다. 작동하지만 2 가지 문제가 있습니다.

  • 내 lib/my_gem/* 파일을 어떻게 다시로드합니까? ../../ lib/my_gem/... 내 Guardfile에 퍼팅 경로를 시도했지만 파일을 보거나 리로드하지 않습니다.
  • 어떤 이유로 rspec은 "config.filter_run : focus => true"와 같이 spec_helper에서 내 옵션을 무시합니다. 나는 이것들을 Spork.prefork에 적절하게 넣었다. 이 설정은 rspec spec/models/task_spec.rb를 사용하여 rspec을 수동으로 실행할 때 작동하지만 guard/spork를 사용할 때 무시됩니다.
+0

을 내 도우미 파일 Spork를 사용하여 다시로드되지 않습니다. 이 문제에 대한 더 자세한 정보가 필요하십니까? –

+0

@ JoshuaMuheim 나는 내 문제를 해결했다. 늦은 답변에 대해 유감스럽게 생각한다. 대답은 아래에 있습니다. – mrbrdo

답변

1

내가 마지막으로 문제를 해결할 수 있었다 :

대신 config.filter_run :focus => true는 RSpec에의 태그를 사용하려고합니다. 열쇠는 test/dummy가 아닌 루트 디렉토리에서 테스트를 실행하는 것입니다. 내 보석을 복제하면 내 설정을 볼 수 있습니다 https://github.com/mrbrdo/has_moderated 키가 Guardfile (test/dummy 경로), Rakefile (spec 작업) 및 spec_helper.rb 파일 (spec/in 중 하나)에 있다고 생각합니다. 하나는 테스트/더미/스펙). 다른 것이 필요하다는 것을 아는 경우 자유롭게 의견을 말하십시오.

1

보통 개발 환경에서 config.cache_classestrue으로 설정됩니다. 당신이 spork을 사용할 때이 옵션을 비활성화해야합니다. 자세한 내용은 ./config/environments/test.rb 파일을 참조하십시오. https://www.relishapp.com/rspec/rspec-core/v/2-4/docs/command-line/tag-option

+0

죄송합니다. 귀하의 답변을 더 빨리 보지 못했습니다. config.cache_classes = false는 도움이되지 않습니다. lib 폴더는 더미 테스트 응용 프로그램의 일부가 아니며 응용 프로그램 외부에 있습니다. 이것이 내가 생각하는 문제입니다. 마운트 가능한 엔진 보석을 생성하면 레일이 생성하는 것입니다. 그래서 ./lib와 ./dummy/test/config/environments/development.rb. 그래서 나는 여전히 해결책을 찾고있다. 태그에 대해서는 어떻게 기억하지 못하더라도 문제를 해결할 수있었습니다. – mrbrdo

0

이제 Spring에는 Rails 엔진을 개발할 때 사용하는 방법에 대한 문서가 있습니다. https://github.com/rails/spring#application-root

은 간단하게 테스트 응용 프로그램의 루트를 찾을 위치를 지정 : 나는이 같은 문제에 직면하고있어

Spring.application_root = './test/dummy' 
+0

이것은 미래에 유용 할 수 있습니다. 그러나 질문을 쓸 때 Spring은 아직 존재하지 않았습니다. 감사합니다 – mrbrdo

+0

죄송합니다. 스프링으로 잘못 읽었습니다. 그들은 같은 단어에 너무 가깝습니다! – Andrew

관련 문제