配置guard-minitest加载路径?

时间:2012-07-20 07:03:35

标签: ruby tdd rake guard

我通常使用Rake运行我的测试套件:

Rake文件

require 'rake/testtask'

namespace :spec do
  desc "Run all specs"
  task all: [:units]

  desc "Run all unit specs"
  Rake::TestTask.new :units do |t|
    t.pattern = "spec/unit/**/*_spec.rb"
    t.libs = ['app', 'spec']
  end
end

上面的rake任务非常有效。现在我希望用guard-minitest

运行它

Guardfile

guard 'minitest' do
  watch(%r{^app/(.+)\.rb$}) { |m| "spec/app/#{m[1]}_spec.rb" }
  watch(%r{^spec/(.+)\.rb$}) { |m| "spec/#{m[1]}.rb" }
end

但是,这样做会导致我的加载路径没有设置:

/vagrant/spec/unit/helper.rb:5:in `require': cannot load such file -- repository (LoadError)

...因为我要求我的文件不是require 'repository'而是require './app/repository'

如何配置guard以使用我需要的加载路径,就像我在rake任务中一样?

1 个答案:

答案 0 :(得分:2)

您可以直接在app(或LOAD_PATH)中将test/test_helper.rb目录添加到spec/spec_helper.rb,例如:

$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'app')))

guard-minitest将你的测试助手添加到minitest,即使在drb上运行时也是如此。