2013-12-18 3 views
1

다른 사이트에 거의 동일한 버전의 웹 응용 프로그램이 있습니다. 내가하고 싶은 무엇명령 줄에서 유사한 페이지에 어떻게 Capybara를 실행합니까?

은 ... 명령 줄에서 사이트를 지정

cucumber --server server1 --tags @tests 

입니다 ....

@servers = {'server1' => 'https://www.tests.com', 'server2' => 'https://www.foobar.com'} 

....

Background: 
Given I am on {#server1} 

Scenario: Happy plan 
When I go here 
And I see this 
Then I get that 

여러 유사한 웹 사이트에서 동일한 스크립트를 실행하는 가장 좋은 방법은 무엇입니까? 명령 줄에서 실행할 수 있습니까?

답변

1

스크립트를 실행하기 전에 일부 구성을 만들고 읽습니다.

구문 분석 코드를 features/support/env.rb으로 설정합니다.

cucumber SERVER=server1 --tags @tests

당신은 일반적인 단계를 만들 수 있습니다

:

Given I am on the configured test server 

다음을, 당신의 단계 정의에서, 당신은 것을 볼 수

+0

나는 정말로 커맨드 라인'cucumber -server server1'을 찾는다.''cucumber --server server2' – TangibleDream

+0

하, 실제로 이것은 정확히 내가 한 일이다. – TangibleDream

2

당신의 최선의 옵션은 서버 이름 an environment variable을 사용하는 것입니다 당신이 정상적인 루비 코드에서와 마찬가지로 Capybara의 기본 URL로 설정합니다 :

Given /^I am on the configured test server$/ do 
    server_name = ENV['SERVER'] 
    url = @servers[server_name] or raise "Unknown test server: #{server_name}" 
    Capybara.app_host = url 
end 

원격 서버를 사용할 때 Selenium과 같이 지원하는 Capybara 드라이버를 사용해야합니다. 기본 RackTest 드라이버는 지원하지 않습니다. run_serverfalse으로 설정할 수도 있습니다. https://github.com/jnicklas/capybara#calling-remote-servers

관련 문제