2016-08-11 8 views
3

흥미로운 문제가 있습니다. 저는 테스트 주도 개발을 위해 Rspec을 사용하고 있으며, 수용 테스트를 위해 Pterterist와 함께 Capybara를 사용하고 있습니다. 오, FactoryGirl도. Rspec과 FactoryGirl이 내가 원하는 테스트 데이터베이스에 대해 작동하고 있습니다. 문제는 수락 테스트가 개발 데이터베이스에 대해 작동하고 있다는 것입니다.테스트를 사용하는 Rspec, 개발 데이터베이스를 사용하는 카피 바라

my_class = FactoryGirl.create(:my_class) 
    visit my_classes_path 
    expect(page).to have_content(my_class.title) 

을 심지어 사용하여 길을 따라 스크린 샷을 확인했습니다 :

page.save_screenshot("screenshot#{__FILE__}_#{__LINE__}.png") 

솔루션을 그래서 분명히 카피 바라를 사용하려고 시도했습니다

이 실패하는 다음과 같은 간단한 테스트를 발생 "레일즈 서버"를 시작할 때 로컬 환경에서 초기화되는 것과 동일한 URL 및 포트.

Capybara.configure do |c| 
    c.run_server = true 
    c.javascript_driver = :poltergeist 
    c.default_driver = :poltergeist 
    c.server_port = 7000 
    c.app_host = "http://localhost:#{c.server_port}" 
end 
+3

직접 해결 한 경우 문제가있는 경우 자신의 질문에 대한 해결책으로 솔루션을 추가하여 향후에 동일한 문제를 겪고있는 사람들을 돕고 인터넷 포인트를 확보 할 수 있습니다. – p4sh4

+0

감사합니다 !!! 너는 나를 구할 ~ ~ – VKatz

답변

1

정상적인 사용을 위해 특정 포트에 잠금 또는 app_host 설정할 필요가 없습니다 : 아래와 같이 내 카피 바라 구성에서 다른 포트를 지정하면 트릭을했다. app_host가 설정되어 있지 않으면 Capybara의 기본값은 http://#{Capybara.server_host}:#{Capybara.server_port}이며 기본값은 http://127.0.0.1:<the입니다. capybara가 서버를 실행합니다. 당신이 (때문에 IPv6를 또는 무언가) 127.0.0.1 대신 localhost를 사용해야 할 경우 단지 응용 프로그램 호스트 대신

Capybara.server_host = 'localhost' 

을 설정하고 포트를 고정. app_host는 외부 사이트를 테스트하려고 할 때 또는 앱을 테스트하기 위해 하위 도메인에 액세스해야하는 경우에 유용합니다. 포트를 고치는 것은 방화벽과 관련된 문제를 해결하기위한 것입니다.