LoadError при использовании Selenium: нет такого файла для загрузки - spec - PullRequest
1 голос
/ 16 марта 2011

По сути, я только начал изучать использование 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'

Я пытался найти ответ, единственный случай, который я нашел, который близок к моему, это Селен не может найти папку 'spec' , на которую еще никто не ответил.

Может кто-нибудь помочь мне, пожалуйста, спасибо заранее.

Ответы [ 3 ]

4 голосов
/ 29 апреля 2011

Проблема в вашей версии Rspec.Драгоценные камни Selenium ищут Rspec 1.2.8 или выше, но Rspec претерпел радикальные изменения в своей классовой структуре в 2.0.Selenium ищет файлы, классы и методы, которые больше не существуют в Rspec 2. Если вы удалите текущую версию Rspec и затем:

gem install rspec -v 1.3.1

Это должно исправитьваши проблемы.Если вы используете Rspec для чего-то другого в вашей автоматизации, это может быть неоптимальным вариантом.

2 голосов
/ 30 марта 2011

У меня тоже проблемы с этим. Однако я пытаюсь запустить это автономно, а не внутри проекта 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 файл. Не могли бы вы опубликовать это?

1 голос
/ 17 марта 2011

Сначала я нашел Огурец + Вебрат + Селен гид , который действительно полезен

Во-вторых, я удалил

require "selenium/rspec/spec_helper"
require "spec/test/unit"

И добавил

require 'spec_helper'

Где spec_helper содержится в папке спецификации

Я также удалил все методы, которые append_after

По сути, теперь тестовые случаи работоспособны, это не лучшее решение, но это то, что я делал до сих пор.

P.S .: необходимо загрузить сервер 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...