LoadError при использовании Selenium: нет такого файла для загрузки - spec
В основном я только начал изучать использование Selenium на Rails 3, я начал с 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', на которую еще никто не ответил.
Может кто-нибудь помочь мне, пожалуйста, спасибо заранее.
3 ответа
Сначала я нашел руководство по Cucumber + Webrat + Selenium, которое действительно полезно
Во-вторых, я удалил
require "selenium/rspec/spec_helper"
require "spec/test/unit"
И добавил
require 'spec_helper'
куда spec_helper
содержится в папке спецификации
Я также удалил все методы, которые есть append_after
По сути, теперь тестовые случаи запускаются, это не лучшее решение, но это то, что я делал до сих пор.
PS: нужно скачать сервер Selenium с http://seleniumhq.org/download/ и запустить сервер с 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
Проблема в вашей версии Rspec. Драгоценные камни Selenium ищут Rspec 1.2.8 или выше, но Rspec претерпел радикальные изменения в своей классовой структуре в 2.0. Selenium ищет файлы, классы и методы, которых больше нет в Rspec 2. Если вы удалите текущую версию Rspec, то:
gem install rspec -v 1.3.1
Это должно исправить ваши проблемы. Если вы используете Rspec для чего-то другого в вашей автоматизации, это может быть нереальным вариантом.
У меня тоже проблемы с этим. Однако я пытаюсь запустить это автономно, а не внутри проекта rails3. Однако я пытаюсь использовать ruby 1.9.2.
Я на самом деле пытаюсь протестировать веб-сайт IIS/ASP, который мы хотим постепенно преобразовать в рельсы. Первым делом нужно было взять наш превосходный набор тестовых наборов "Selenese", экспортировать их как RSpec и запустить их с использованием ruby и т. Д. Я новичок в мире ruby /rails и считаю это очень расстраивающим. То, что я думал, что несколько часов работы превратились в дни...
Я придерживался схожей тактики с вашей. Тем не менее, я просто удалил все драгоценные камни и требовать заявления, кроме require "selenium/client"
, Также я переименовал append_after
в after
, append_after
метод определен в selenium/rspec/spec_helper
файл (я проверил lib).
Я часами искал в Интернете, и я не могу найти ответ на вопрос, почему require "selenium/rspec/spec_helper"
утверждение не удается - кажется, что-то называется spec
(что, я думаю, так называется RSpec) отсутствует.
Я думаю, что он работает, но не хватает какой-то функциональности. spec_helper
кажется, обрабатывает состояние системы захвата и другие полезные функции.
Мне интересно знать, что вы положили в свой spec_helper
файл. Не могли бы вы опубликовать это?