读书人

在windows下配置autotest和spork

发布时间: 2012-08-28 12:37:01 作者: rapoo

在windows上配置autotest和spork

修改Gemfile
group :development, :test do
??#gem 'minitest'
??#gem 'mini_backtrace'
??gem 'autotest'
??gem 'autotest-rails-pure'
??gem 'autotest-growl'
??gem 'spork', '~> 0.9.0.rc'
??gem 'spork-testunit'
end
手动安装spork prelease版本
gem install spork --prerelease
(gem install spork --pre)
安装growl for windows图形界面

在rails目录运行bundle install
然后运行spork --bootstrap添加spork相关启动信息到test/test_helper.rb文件
运行spork启动spork server

因为spork testunit是testdrb -I... test_file这样的格式调用,
所以我们修改autotest库文件
D:\Ruby187\lib\ruby\gems\1.8\gems\ZenTest-4.6.0\lib\autotest.rb
修改make_test_cmd两行,//*为修改行,
因为autotest不支持-n /^test_name$/这样的语法制定某个test_case名,
我们直接去掉,让他跑整个改动后的test_case

def make_test_cmd files_to_test
? ? cmds = []
? ? full, partial = reorder(files_to_test).partition { |k,v| v.empty? }
? ? diff = self.unit_diff
? ? diff = " | #{diff}" if diff and diff !~ /^\|/

? ? ruby_cmd = "#{prefix}testdrb -I#{libs}" //*

? ? unless full.empty? then
? ?? ?classes = full.map {|k,v| k}.flatten.uniq
? ?? ?classes.unshift testlib
? ?? ?classes = classes.join " "
? ?? ?#cmds << "#{ruby_cmd} -e \"%w[#{classes}].each { |f| require f }\"#{diff}"

? ?? ?#cmds << "#{ruby_cmd}??#{classes} #{diff}"
? ?? ?cmds << "#{ruby_cmd}??#{classes} #{diff}" //*
? ?? ?#cmds << "#{ruby_cmd} -e \"%w[#{classes}].each { |f| eval(\"`testdrb \" + f + \"`\")}\"#{diff}"
? ? end

? ? partial.each do |klass, methods|
? ?? ?regexp = Regexp.union(*methods).source
? ?? ?cmds << "#{ruby_cmd} #{klass} #{diff}" //*
? ?? ?#cmds << "#{ruby_cmd} #{klass} -n \"/^(#{regexp})$/\"#{diff}"
? ? end

? ? cmds.join "#{SEP} "
??end

读书人网 >windows

热点推荐