无法启动 firefox 浏览器并在 RubyMine 中使用 RSpec 进行 运行 测试

Unable to launch firefox browser and run test with RSpec in RubyMine

我是 Ruby 和 Rspec 的新手。我只是做了以下步骤。

得到下面的输出,如下面的截图所示。作为新手,我看不到代码有任何问题。但它甚至没有启动 Firefox 浏览器,也没有在控制台中打印。

我是不是漏掉了什么?

我认为你做错了。

  1. 在你的项目根文件夹中,添加Gemfile文件,这个Gemfile可以是这样的:

    source 'https://rubygems.org'
    git_source(:github) { |repo| "https://github.com/#{repo}.git" }
    
    ruby '2.6.5'
    
    gem 'rspec', '~> 3.9'
    gem 'capybara', '~> 3.30'
    gem 'selenium-webdriver', '~> 3.142', '>= 3.142.6'
    
  2. 在项目根目录中创建一个 spec/ 目录

  3. 在您的项目根目录中为您的 selinium 日志创建一个 log/ 目录。

  4. 创建一个 spec/spec_helper.rb 文件,配置如下:

    # frozen-string-literal: true
    
    require 'rspec'
    require 'capybara/rspec'
    require 'capybara/dsl'
    require 'selenium-webdriver'
    
    Selenium::WebDriver.logger.level = :debug
    Selenium::WebDriver.logger.output = File.dirname(Dir.pwd) + '/project_dir_name/log/selenium.log'
    
    Capybara.register_driver :firefox do |app|
      Capybara::Selenium::Driver.new(app, browser: :firefox)
    end
    
    Capybara.default_driver = :firefox
    Capybara.javascript_driver = :firefox
    Capybara.app_host = 'http://127.0.0.1:3005'
    Capybara.default_max_wait_time = 10
    
    RSpec.configure do |config|
      config.before(:each) do
        config.include Capybara::DSL
      end
    end
    
  5. 以上代码将设置rspec,水豚。如果需要,您可以更改驱动程序、主机和其他配置。

  6. 现在创建一个新的 spec/features/test.rb 文件,内容如下:

    require 'spec_helper'
    
    describe 'Google homepage test', js: true do
      before(:each) do
        visit('https://google.com')
      end
    
      describe "First test" do
        it "check title" do
          expect(page.title).to be == "some text"
        end
      end
    end
    
  7. 然后 运行: bundle exec rspec spec/features/test.rb 来自你的项目根目录。


如果你不想这样,那么问题是你 运行宁 ruby test.rb,实际上 test.rb 这应该 运行ned 通过rspec:

$ rspec test.rb

如果您使用的是捆绑器,那么:

$ bundle exec rspec test.rb