2012-02-20 4 views
1

더 쉽게 구성 할 수 있도록 my/spec 디렉토리 아래에 몇 개의 폴더를 네임 스페이스로 매핑하고 싶습니다. 그래서/spec/요청보다는/spec/another_directory/요청을 사용하고 싶습니다. 나는이 새로운 네임 스페이스 디렉토리 아래에 내 사양을 실행할 때RSpec이 네임 스페이스 디렉토리를 로딩 할 때 경로를 로딩하지 않습니다.

그러나, 나는 그 내 루트는 더 이상 제대로로드됨에 따라

NoMethodError: 
     undefined method `whatever_path' 

그래서, 그것을 보지 않는다 얻는다. 파일을 네임 스페이스없이 spec/요청으로 옮기면 모두 정상이며 테스트는 녹색입니다.

문제가 무엇인지 잘 모르겠습니다. 나는 내 파일에서 'spec_helper'를 requiriing 해요.

require File.dirname(__FILE__) + '/../../spec_helper' 

과 그 변화를,하지만 난 그게이 spec_helper를로드하는 것 때문에, 도움이 그냥 경로 방법을 정말 잘 모르겠어요 : 나는 또한 보았다. 그리고 더 Spork.pre_fork의 각 실행이

Spork.each_run do 
    load "#{Rails.root}/config/routes.rb" 
end 

을 차단하지만 난 여전히 Spork가 실행되고 있는지 여부 오류 여부를 전에 나는 경로를 다시로드하고있어, 일이 재미를 확인합니다.

내가 뭘 잘못하고 있니?

(RSpec에 레일 2.8.1)

답변

2

나는이 request example before hook 해고되지 예정이다, 생각합니다. further을 보면 rspec-rails가 실행되는 예제 유형을 결정하는 방법을 이해할 수 있습니다. , 다음은 카피 바라의 방법을 점점 아니에요,

config.include RSpec::Rails::RequestExampleGroup, :type => :request, 
    :example_group => { 
    :file_path => config.escaped_path(%w[spec (my|folder|names) requests])} 

을하지만 :

난 당신이 spec/requests/another_directory 스키마를 사용하는 것이 좋습니다하거나 다소처럼 RSpec에를 다시 시도 할 수 있습니다 :

RSpec::configure do |config| 
    config.include RSpec::Rails::RequestExampleGroup, :type => :request, 
     :example_group => {:file_path => 'path/to/your/requests')} 
end 
+0

Thank you !. 내가 아래에 게시 한 솔루션으로 이어질 때 귀하의 답변을 수락했습니다. – GoodGets

0

내가하고 결국 그래서 위의 설정 블록 다음에 다시 포함합니다.

config.include Capybara::DSL, :type => :request 
config.include Capybara::RSpecMatchers, :type => :request 

각자의 '부모'폴더를 포함 할 필요가 없도록 경로를보다 탄력적으로 만들어야합니다. 나는 각 폴더를 포함하는 대신에 **을 사용하려고 시도했지만로드되지 않았다. 그런 다음 경로를 직접 설정하려고 시도했습니다.

그러나 그때 하나의 파일을 실행할 능력이 없습니다.

위의 코드가 작동합니다. 각 폴더 이름을 파이프해야합니다.