0

私は通常、テスト スイートを次のように実行します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:

ガードファイル:

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'

rake タスクのように、必要なロード パスを使用するようにGuardを構成するにはどうすればよいですか?

4

1 に答える 1

2

app次のように、ディレクトリを(または)LOAD_PATHに直接追加できます。test/test_helper.rbspec/spec_helper.rb

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

Guard-minitest は、drb で実行している場合でも、テスト ヘルパーを minitest に追加します。

于 2012-07-21T09:07:14.790 に答える