Any suggestions for what to check when running on windows with: rspec (1.2.9) rspec-rails (1.2.9) rails 2.3.3 ruby 1.8.6 spec_server
Run autospec with --drb option and get the following exception. Run autospec or 'spec spec' works fine. /spec/spec_helper.rb:19: undefined method `use_transactional_fixtures=' for #<Spec::Runner::Configuration: 0xe1e0934> (NoMethodError) spec_helper.rb contains: # This file is copied to ~/spec when you run 'ruby script/generate rspec' # from the project root directory. ENV["RAILS_ENV"] ||= 'test' require File.expand_path(File.join(File.dirname (__FILE__),'..','config','environment')) require 'spec/autorun' require 'spec/rails' # Uncomment the next line to use webrat's matchers #require 'webrat/integrations/rspec-rails' # Requires supporting files with custom matchers and macros, etc, # in ./support/ and its subdirectories. Dir[File.expand_path(File.join(File.dirname (__FILE__),'support','**','*.rb'))].each {|f| require f} Spec::Runner.configure do |config| # If you're not using ActiveRecord you should remove these # lines, delete config/database.yml and disable :active_record # in your config/boot.rb config.use_transactional_fixtures = true config.use_instantiated_fixtures = false config.fixture_path = RAILS_ROOT + '/spec/fixtures/' ... spec_server contains was copied from http://github.com/dchelimsky/spec_server: #!/usr/bin/env ruby gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9 puts "Loading Rails environment" ENV["RAILS_ENV"] ||= 'test' require File.expand_path(File.dirname(__FILE__) + "/../config/ environment") unless defined?(RAILS_ROOT) require 'optparse' if Rails::VERSION::STRING >= '2.2' && Rails.configuration.cache_classes raise <<-MESSAGE #{'*'*65} Rails.configuration.cache_classes == true This means that spec_server won't reload your classes when you change them, which defeats the purpose of spec_server. Please set 'config.cache_classes = false' (it's probably set to true in config/environments/test.rb) and give it another try. #{'*'*65} MESSAGE end require 'drb/drb' require 'rbconfig' # This is based on Florian Weber's TDDMate module Spec module Rails class SpecServer class << self def restart_test_server puts "restarting" config = ::Config::CONFIG ruby = File::join(config['bindir'], config ['ruby_install_name']) + config['EXEEXT'] command_line = [ruby, $0, ARGV].flatten.join(' ') exec(command_line) end def daemonize(pid_file = nil) return yield if $DEBUG pid = Process.fork{ Process.setsid Dir.chdir(RAILS_ROOT) trap("SIGINT"){ exit! 0 } trap("SIGTERM"){ exit! 0 } trap("SIGHUP"){ restart_test_server } File.open("/dev/null"){|f| STDERR.reopen f STDIN.reopen f STDOUT.reopen f } run } puts "spec_server launched (PID: %d)" % pid File.open(pid_file,"w"){|f| f.puts pid } if pid_file exit! 0 end def run trap("USR2") { ::Spec::Rails::SpecServer.restart_test_server } if Signal.list.has_key?("USR2") DRb.start_service("druby:// 127.0.0.1:8989", ::Spec::Rails::SpecServer.new) DRb.thread.join end end def run(argv, stderr, stdout) $stdout = stdout $stderr = stderr ::Rails::Configuration.extend Module.new {def cache_classes; false; end} ::ActiveSupport.const_defined?(:Dependencies) ? ::ActiveSupport::Dependencies.mechanism = :load : ::Dependencies.mechanism = :load require 'action_controller/dispatcher' dispatcher = ::ActionController::Dispatcher.new($stdout) if ::ActionController::Dispatcher.respond_to? (:reload_application) ::ActionController::Dispatcher.reload_application else dispatcher.reload_application end if Object.const_defined?(:Fixtures) && Fixtures.respond_to? (:reset_cache) Fixtures.reset_cache end unless Object.const_defined?(:ApplicationController) %w(application_controller.rb application.rb).each do |name| require_dependency(name) if File.exists?("#{RAILS_ROOT}/ app/controllers/#{name}") end end load "#{RAILS_ROOT}/spec/spec_helper.rb" if in_memory_database? load "#{RAILS_ROOT}/db/schema.rb" ActiveRecord::Migrator.up('db/migrate') end ::Spec::Runner::CommandLine.run( ::Spec::Runner::OptionParser.parse( argv, $stderr, $stdout ) ) if ::ActionController::Dispatcher.respond_to? (:cleanup_application) ::ActionController::Dispatcher.cleanup_application else dispatcher.cleanup_application end end def in_memory_database? ENV["RAILS_ENV"] == "test" and ::ActiveRecord::Base.connection.class.to_s == "ActiveRecord::ConnectionAdapters::SQLite3Adapter" and ::Rails::Configuration.new.database_configuration['test'] ['database'] == ':memory:' end end end end options = Hash.new parser = OptionParser.new parser.on("-d", "--daemon") {|ignore| options[:daemon] = true } parser.on("-p", "--pid PIDFILE"){|pid| options[:pid] = pid } parser.parse!(ARGV) if options[:daemon] ::Spec::Rails::SpecServer.daemonize(options[:pid]) else ::Spec::Rails::SpecServer.run end _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users