有没有人成功地建立了一个独立的环境来使用Ruby 1.9.2,Selenium-client和rspec来测试NON-RAILS网站。
我已经在网上搜索过,但我似乎无法得到神奇的公式。 存在 gem 版本冲突、缺少库等。 在这一点上,我完全困惑了。
基本问题:我有许多测试套件和测试使用SeleniumIDE 1.0.10用于非RAILS应用程序(IIS/ASP)。 我只是想使用 SeleniumIDE 可以提供的转换测试并使用 ruby 或更好的 rake 运行它们。 (请注意,SeleniumIDE 可以创建 RSpec 或测试/单元测试,我很想让任何一个工作)。
据我了解,Selenium客户端具有启动/停止SeleniumRC服务器和运行测试的耙子任务。 但对于我的生活,我无法做到这一点。
如果需要,我可以提供更多信息。 但是,在这一点上,我很高兴知道有人也在走这条路。
-谢谢!
附言我这样做是将 IIS/ASP 应用程序与 rails 混合并迭代进行完全转换的前奏。 如果我不能迈出第一步,我的老板就会否定去轨道的整个想法,所以请帮忙;-)
你需要 gem 安装 'rspec' 和 'selenium-client'。 我安装了 ruby 1.9.2,是的,我使用 rvm。对于firefox_version胡说八道,我深表歉意。 我的Macbook上安装了多个火狐版本。 如果您安装了单个火狐浏览器,则只需指定 :browser => "*火狐"
您需要打开两个终端窗口。 首先,启动硒服务器.jar。
在第二个窗口中,cd 到包含 rspec_hello.rb 的目录,然后输入Ruby ./rspec_hello.rb
这里是rspec_hello.rb
require "rubygems" # >= 1.8.12
require 'rspec' # >= 2.1.0
require "selenium/client" # >= 1.2.18
describe "google" do
# attr_reader :selenium_driver
@selenium_driver = nil
before(:each) do
firefox_version = 3
firefox_path = "/Applications/Firefox" + firefox_version.to_s + ".app/Contents/MacOS/firefox-bin"
@selenium_driver = Selenium::Client::Driver.new
:host => "localhost",
:port => 4444,
:browser => "*firefox #{firefox_path}",
:url => "http://www.google.com/",
:timeout_in_second => 60
@selenium_driver.start
end
after(:each) do
puts " "
puts "goodbye world"
@selenium_driver.close_current_browser_session
end
it "test google" do
puts "hello world"
@selenium_driver.open "/"
@selenium_driver.type "q", "selenium wiki"
@selenium_driver.click "btnG"
@selenium_driver.wait_for_text("Selenium Wiki")
@selenium_driver.text?("Selenium Wiki").should be_true
end
end
您是否考虑过使用 rvm 创建沙盒环境并打包程序为您管理依赖项?
我在使用rails时使用rvm和bundler。 对于我在这个问题中关注的项目,我不想有一个单独的环境来独立测试旧的东西(IIS/ASP)。
因此,我决定使用 Test:Unit Selenium 转换而不是 RSpec,以及一些 rake 任务,在与混合项目相同的环境中独立进行测试。
这是有道理的,因为几乎所有这些硒测试都在测试混合系统的 OLD 一半,并且将被 rspec/黄瓜/水豚测试替换为 NEW rails 代码,因为它被集成,直到 OLD 一半(以及独立测试)不再存在。
在NEW Integrated rails项目中仍然有硒的用途,特别是对于AJAX测试。
有关示例,请参阅此 railscast。