使用“ -e”参数运行rspec

时间:2019-07-30 05:14:22

标签: ruby rspec

我可以运行简单的ruby程序,例如

ruby -e "puts 'raja'"

但是当我运行Rspec文件时,我会以这种方式运行

ruby rspec my_example_spec.rb

说,我是否有办法像在第一行中那样将rspec程序作为参数传递?

我尝试过

ruby -e rspec "require 'rspec'
require 'watir'
describe 'My behaviour' do
  it 'should do something' do
    b = Watir::Browser.new
    b.goto 'www.google.com'
    b.text_field(name: 'q').set 'Rajagopalan'
    sleep 2
    b.close
  end
end"

但是它没有运行。如何传递带有'-e'参数的rspec程序?

1 个答案:

答案 0 :(得分:1)

在Google搜索中,我在RSpec github上发现了这个问题线程:https://github.com/rspec/rspec-core/issues/359

似乎您可以通过放置

从Ruby运行RSpec测试。
RSpec::Core::Runner::run({}, $stderr, $stdout)

定义之后。

以下最小测试对我有效:

ruby -e "require 'rspec'
describe 'My behaviour' do
  it 'should do something' do
    expect(1).to eq(2)
  end
end
RSpec::Core::Runner::run({}, \$stderr, \$stdout)
"