1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00
pry--pry/spec/helper.rb

60 lines
1.7 KiB
Ruby
Raw Normal View History

require 'bundler/setup'
Bundler.require :default, :test
require 'pry/testable'
require_relative 'spec_helpers/mock_pry'
require_relative 'spec_helpers/repl_tester'
if ENV["COVERAGE"]
require "simplecov"
SimpleCov.start
end
class Module
public :remove_const
public :remove_method
end
Pad = Class.new do
include Pry::Config::Behavior
end.new(nil)
# to help with tracking down bugs that cause an infinite loop in the test suite
if ENV["SET_TRACE_FUNC"]
set_trace_func(
proc { |event, file, line, id, binding, classname|
STDERR.printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
}
)
end
RSpec.configure do |config|
config.expect_with :rspec do |c|
c.syntax = [:should, :expect]
end
2014-09-12 12:42:42 -04:00
config.before(:each) do
Pry::Testable.set_testenv_variables
end
config.after(:each) do
Pry::Testable.unset_testenv_variables
end
config.include Pry::Testable::Mockable
config.include Pry::Testable::Utility
include Pry::Testable::Evalable
include Pry::Testable::Variables
# Optionally skip a test on specific Ruby engine(s).
# Please use this feature sparingly! It is better that a feature works than not.
# Inapplicable features are OK.
config.before(:each) do |example|
Pry::Platform.known_engines.each do |engine|
example.metadata[:expect_failure].to_a.include?(engine) and
Pry::Platform.public_send(:"#{engine}?") and
skip("This spec is failing or inapplicable on #{engine}.")
end
end
end
puts "Ruby v#{RUBY_VERSION} (#{defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"}), Pry v#{Pry::VERSION}, method_source v#{MethodSource::VERSION}, CodeRay v#{CodeRay::VERSION}, Pry::Slop v#{Pry::Slop::VERSION}"