所以,我有一个Rails webapp,它使用子域将admin官方功能与使用subdomain-fu的公共功能分开。
因此,有两个网址(例如admin.example.com
和www.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”
有什么想法吗?或者,如果它不可能,任何解决方法的想法?
答案 0 :(得分: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
答案 1 :(得分:0)
我从未使用过webrat,但是在正常的测试中,如果你要打开一条完整的路径而不是相对路径。
所以
selenium.open("http://foo/bar");
将使测试转到完整网址