1

所以,我有一个 Rails webapp,它利用子域将管理功能与使用 subdomain-fu 的公共功能分开。所以有功能(我想测试!)包含在两个 url(例如admin.example.comwww.example.com)中。我希望一些场景针对管理域运行,一些针对 www 域。

我的问题是我无法弄清楚如何在启动后随时更改 selenium 使用的域。我可以在我的 env.rb 中放这样的东西:

Webrat.configure do |config|
  config.mode = :selenium
  config.application_address = "admin.example.com"
end

它会起作用,但仅适用于需要管理域的场景。如果我尝试类似:

host! "www.example.com"

在我的步骤中,它似乎只是被 selenium 忽略了,它继续使用“admin.example.com”

有任何想法吗?或者,如果它不可能,任何解决方法的想法?

4

2 回答 2

1

我还没有使用 Webrat 进行这项工作,但使用 Cabybara,以下工作对我有用。

Given /^I visit subdomain "(.+)"$/ do |sub|
  # host! "#{sub}.example.com" #for webrat
  Capybara.default_host = "#{sub}.example.com" #for Rack::Test
  Capybara.app_host = "http://#{sub}.example.com:9887" if Capybara.current_driver == :selenium

  ################################################################################
  # As far as I know, you have to put all the {sub}.example.com entries that you're
  # using in your /etc/hosts file for the Culerity tests. This didn't seem to be
  # required for Rack::Test
  ################################################################################
end
于 2010-06-14T23:30:36.367 回答
0

我从未使用过 webrat,但在正常测试中,如果您要在其中打开完整路径而不是相对路径。

所以

selenium.open("http://foo/bar");将使测试转到完整的网址

于 2010-04-28T07:36:07.290 回答