基本上我刚开始学习在Rails 3上使用Selenium,我从Selenium IDE开始并以RSpec格式生成脚本
在运行此脚本之前,我已为selenium-client
,Selenium
,selenium-rails
和selenium-webdriver
但是当我使用rspec命令运行这个脚本时,我得到了
C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:58:in `require': no such file to load -- spec (LoadError)
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:58:in `rescue in require'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-client-1.2.18/lib/selenium/rspec/spec_helper.rb:2:in `<top (required)>'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from C:/Users/qsang/Desktop/Code/NextBigThing/spec/Selenium/create_new_user.rb:5:in `<top (required)>'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `load'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `block in load_spec_files'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `map'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `load_spec_files'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/command_line.rb:18:in `run'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:55:in `run_in_process'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:46:in `run'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:10:in `block in autorun'
我试图寻找答案,我发现的唯一一个与我很接近的案例是Selenium Can't Find 'spec' Folder,但还没有人回答。
有人可以帮助我,提前谢谢。
答案 0 :(得分:4)
问题是您的Rspec版本。 Selenium宝石正在寻找Rspec 1.2.8或更高,但Rspec在2.0中对其类结构进行了剧烈变化。 Selenium正在寻找Rspec 2中不再存在的文件,类和方法。如果你卸载当前版本的Rspec,那么:
gem install rspec -v 1.3.1
它应该解决你的问题。如果你在自动化中使用Rspec做其他事情,那么这可能不是一个可行的选择。
答案 1 :(得分:2)
我也遇到了麻烦。但是我试图独立运行这个而不是在rails3项目中运行。但是我尝试使用ruby 1.9.2。
我实际上是在尝试测试我们想要逐步转换为rails的IIS / ASP网站。第一步是采用我们完美的“Selenese”测试套件,将它们导出为RSpec并使用ruby等运行它们。我是ruby / rails世界的新手,我觉得这非常令人沮丧。我认为几个小时的工作已经变成了几天......
我遵循了类似的策略。但是,我只删除了除require "selenium/client"
之外的所有gem和require语句。我还将append_after
重命名为after
。 append_after
方法在selenium/rspec/spec_helper
文件中定义(我检查了lib)。
我花了几个小时在网上搜索,但我无法找到require "selenium/rspec/spec_helper"
语句失败原因的答案 - 似乎有一个名为spec
的东西(我认为曾经被称为RSpec的东西。)
我认为它有效,但缺少一些功能。 spec_helper
似乎处理捕获系统状态和其他有用的功能。
我很想知道你在你的 spec_helper
文件中添加了什么。你能发贴吗?
答案 2 :(得分:1)
首先我发现Cucumber + Webrat + Selenium guide非常有用
其次,我删除了
require "selenium/rspec/spec_helper"
require "spec/test/unit"
并添加了
require 'spec_helper'
spec {/ p>中包含spec_helper
的位置
我还删除了append_after
基本上现在测试用例可以运行,这不是最好的解决方案,但这是我到目前为止所做的。
P.S:需要从http://seleniumhq.org/download/下载Selenium服务器并使用java -jar selenium-server-standalone-2.0b2.jar
运行服务器
<强> spec_helper 强>
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
# == Mock Framework
#
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
#
# config.mock_with :mocha
# config.mock_with :flexmock
# config.mock_with :rr
config.mock_with :rspec
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
config.use_transactional_fixtures = true
end