2013-08-23 1 views
2

RSpec 및 Guard를 사용하여 레일 앱을 테스트하고 있습니다.Rspec을 사용하여 guard를 사용하여 환경 변수를 변경하는 방법

모두 잘 작동하지만 환경 변수가 설정되지 않은 경우 무시되는 태그가 있습니다. 예를 들어

: 내 환경에서 SLOW_SPECS = 1

이 어떻게 가드를 다시 시작하지 않고이 값을 변경할 수 있습니다 때

RSpec.configure do |config| 
    config.use_transactional_fixtures = false 

    config.include FactoryGirl::Syntax::Methods 

    config.treat_symbols_as_metadata_keys_with_true_values = true 
    config.filter_run focus: true 
    config.run_all_when_everything_filtered = true 

    config.filter_run_excluding :slow unless ENV["SLOW_SPECS"] 
end 

그래서 사양이 :slow로 표시에만 실행됩니다?

+0

ENV [ "SLOW_SPECS"] = nil'이 실행 시간에 올바르게 작동해야합니다. –

+0

감사합니다. @ 돌핀. Gaurd의 환경 변수를 변경하려고합니다. 변경 사항이 여러 터미널 창을 통해 전달 될 것이라고 생각하지 않기 때문에 필터를 바꿀 때마다 경비원을 그만두기를 원하지 않습니다. – bodacious

+0

내가 좋아할 것입니다. 이것을 알기 위해서. –

답변

-1

당신이 당신의 사양을 실행하는 guard-rspec를 사용하는 가정하면, 예를 들어, cmd 옵션을 사용하는 환경 변수에 전달할 수 있습니다

guard :rspec, cmd: 'SLOW_SPECS=false spring rspec' ... 

하고 RSpec에 구성 업데이트가 포함 :

config.filter_run_excluding :slow unless ENV["SLOW_SPECS"] == "1" 
+0

이 대답은 경비를 다시 시작해야합니다. OP는 그것을 필요로하지 않는 해결책을 요구했다. – dcorking