Я только что установил гем SimpleCov для создания отчетов о покрытии кода в моем приложении Rails 3.2.6, и он отлично работает с RSpec, но не со Spork. Я могу получить нужный правильный отчет, запустив rspec --no-drb spec/
, но я также хотел бы получить их с помощью Spork, используя только rspec spec/
.
Учитывая, что были люди, которые добились успеха с этим, вероятно, у меня есть ошибки в моей настройке. Я прочитал инструкции по установке , а также проблему GitHub , которая якобы содержит исправление для пользователей Spork, но все равно не повезло. Мне интересно, есть ли кто-нибудь, кто может предоставить полный пример своего рабочего файла spec/spec _helper.rb , который я мог бы использовать для справки, поскольку обширный поиск в Google нашел только фрагменты. По совету других сайтов я безуспешно пытался изменить config.cache_classes
в config/environments/test.rb со значения по умолчанию true
на false
на !(ENV['DRB'] == 'true')
.
Для справки,вот как я настроен:
Gemfile
group :development, :test do
#...
gem 'rspec-rails', '2.10.1'
end
group :test do
#...
gem 'spork', '0.9.0'
gem 'simplecov', '0.6.4', require: false
end
.spec
--colour
--drb
спецификация/спецификация _helper.rb(изменено в соответствии с проблемой GitHub)
require 'simplecov'
SimpleCov.start 'rails'
require 'rubygems'
require 'spork'
Spork.prefork do
unless ENV['DRB']
require 'simplecov'
SimpleCov.start 'rails'
end
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.mock_with :rspec
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
end
end
Spork.each_run do
if ENV['DRB']
require 'simplecov'
SimpleCov.start 'rails'
end
end
Я пытался закомментировать/изменить два верхних оператора SimpleCov
этого файла и операторы Simplecov внутри блоков Spork
, но не могу найти подходящую комбинацию.
Что мне не хватает? Есть ли какие-либо другие файлы, которые мне нужно изменить?