无法使用OptionParser和rspec

Sun*_*Sun 1 ruby rspec watir optionparser watir-webdriver

我有一个简单的watir(网络驱动程序)脚本进入谷歌.但是,我想使用选项解析器在cmd中设置一个参数来选择一个浏览器.以下是我的脚本:

require 'optparse'
require 'commandline/optionparser'
include CommandLine
require 'watir-webdriver'

describe 'Test google website' do

  before :all do

    options = {}

    opts = OptionParser.new do |opts|

      opts.on("--browser N",
        "Browser to execute test scripts") do |n|
        options[:browser] = n
        $b = n.to_s
      end
    end

    opts.parse! ARGV

    p options
  end

  describe 'The test website should be displayed' do

    it 'should go to google' do
      $ie = Watir::Browser.new($b)
      #go to test website
  $ie.goto("www.google.com")
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

执行rspec ietest.rb --browser firefox -f doc只是给了我无效选项,ietest是我文件的名称.任何其他直观的方式通过Web驱动程序设置浏览器,而不改变脚本代码,将是受欢迎的.

Cas*_*per 7

您不能使用rspec,OptionParser因为rspec可执行文件本身会解析自己的选项.你不能"捎带"你对rspec选项的选择.

如果您必须执行此类操作,请使用设置文件(spec_config.yml或类似文件),或使用环境变量:

BROWSER=firefox spec test_something.rb

然后在您的代码中,您可以使用它ENV['BROWSER']来检索设置.