我在不同站点上有几乎相同版本的网络应用程序。
我想做的是在命令行中指定站点...
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
在多个类似网站上运行相同脚本的最佳方式是什么?可以从命令行运行吗?
最佳答案
最好的选择是使用 an environment variable对于您的服务器名称:
cucumber SERVER=server1 --tags @tests
您可以创建一个通用步骤:
Given I am on the configured test server
然后,在您的步骤定义中,您可以像在任何普通 Ruby 代码中那样查找它,并将其设置为 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
请注意,使用远程服务器时,您需要使用支持它的 Capybara 驱动程序,例如 Selenium:默认的 RackTest 驱动程序不支持。您可能还想将 run_server
设置为 false
。参见 https://github.com/jnicklas/capybara#calling-remote-servers
关于ruby - 如何从命令行在类似页面上运行 Capybara?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20663817/