2017-11-13 2 views
-1

나는 RSpec에 테스트, 즉 설명하고 그것이 내가 before :allbefore :each 동작을 추가 할rspec 테스트에서 require_relative를 사용하는 방법은 무엇입니까?

내가 즉, 직접 테스트 사양 파일에

describe "test" do 
    before :all do 
    CONTINUE_SPEC= true 
    end 

    around :each do |example| 
    if CONTINUE_SPEC 
     CONTINUE_SPEC = false 
     example.run 
     CONTINUE_SPEC = true unless example.exception 
    else 
     example.skip 
    end 
    end 
    ... actual tests... 

을 넣어 추가 할 수 있습니다 그러나 나는 거의 모든 사양에서 그것을 갖고 싶어하므로 쉽게 만들 수있는 require_relative 문을 사용할 수 있다고 생각했습니다. 내가

require_relative '../../support/continue_test_if_passing' 

와 require_relative을 사용하여 파일에 코드를 전송할 때 그러나 나는

Failure/Error: 
    before :all do 
    CONTINUE_SPEC= true 
    end 

NoMethodError: 
    undefined method `before' for main:Object 
+0

나는'필요로 알고 '는 더 깊은 레벨에서 호출되거나 무언가에 캡슐화 된 경우에도 항상 Ruby 스크립트 ('주요'특수 객체)의 최상위 레벨에서 실행됩니다. 그래서 'for main : Object'에'undefined method '라는 오류가 발생합니다. – BernardK

답변

1

는 그냥 RSpec.configure 블록에 spec_helper.rb이 추가 수 :

RSpec.configure do |config| 
    config.before :all do 
    CONTINUE_SPEC= true 
    end 

    config.around :each do |example| 
    if CONTINUE_SPEC 
     CONTINUE_SPEC = false 
     example.run 
     CONTINUE_SPEC = true unless example.exception 
    else 
     example.skip 
    end 
    end 

    # ... 
end 
관련 문제