在同一进程中从ruby内部多次运行rspec



我正在创建一个测试自动化工具,从ruby内部运行rspec测试,而不是从命令行。

我像这样运行我的测试,它运行并给我一个带有通过/失败等的输出哈希值。

config = RSpec.configuration
json_formatter = RSpec::Core::Formatters::JsonFormatter.new(config.out)
reporter =  RSpec::Core::Reporter.new(json_formatter)
config.instance_variable_set(:@reporter, reporter)
RSpec::Core::Runner.run(["#{Rails.root}/spec/test1_spec.rb"])
puts json_formatter.output_hash 

一切都很好,直到我再次运行它,我得到错误

> undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_7:0x007ff3d343d978>

我如何重新加载/确保所有spec_helper和文件在我再次运行之前加载?

谢谢瑞克

添加

require 'spec_helper'

我有同样的问题,事实证明它可以修复一行代码:

require 'capybara'
include Capybara::DSL # Add this line right after requiring capybara

来源:http://codedecoder.wordpress.com/2013/01/10/undefined-method-visit-for-rspec-capybara/

我有一个类似的问题,不得不在运行之间做一个RSpec#reset,以确保所有东西都被清理干净。

http://www.rubydoc.info/github/rspec/rspec-core/RSpec reset-class_method

相关内容

  • 没有找到相关文章

最新更新