1

我在让 Guard 在我的 Rails 3.2 项目中运行时遇到问题。我的测试文件夹看起来像默认的 rails 测试结构:

▾ test/
  ▾ fixtures/
      customers.yml
  ▾ functional/
  ▾ integration/
  ▾ performance/
      browsing_test.rb
  ▾ unit/
      customer_test.rb
    test_helper.rb

我的 Guardfile 看起来像这样:

guard 'minitest' do
  # with Minitest::Unit
  watch(%r|^test/(.*)\/?test_(.*)\.rb|)
  watch(%r|^lib/(.*)([^/]+)\.rb|)     { |m| "test/#{m[1]}test_#{m[2]}.rb" }
  watch(%r|^test/test_helper\.rb|)    { "test" }

  # with Minitest::Spec
   watch(%r|^spec/(.*)_spec\.rb|)
   watch(%r|^lib/(.*)([^/]+)\.rb|)     { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
   watch(%r|^spec/spec_helper\.rb|)    { "spec" }

  # Rails 3.2
  watch(%r|^app/controllers/(.*)\.rb|) { |m| "test/controllers/#{m[1]}_test.rb" }
  watch(%r|^app/helpers/(.*)\.rb|)     { |m| "test/helpers/#{m[1]}_test.rb" }
  watch(%r|^app/models/(.*)\.rb|)      { |m| "test/unit/#{m[1]}_test.rb" }  

  # Rails
  # watch(%r|^app/controllers/(.*)\.rb|) { |m| "test/functional/#{m[1]}_test.rb" }
  # watch(%r|^app/helpers/(.*)\.rb|)     { |m| "test/helpers/#{m[1]}_test.rb" }
  # watch(%r|^app/models/(.*)\.rb|)      { |m| "test/unit/#{m[1]}_test.rb" }  
end

但是在运行警卫时,它只是说它正在监视,但实际上并没有运行 customer_test.rb 中的任何测试,即使我明确要求它运行迷你测试。如果我从命令行使用 运行测试ruby -Itest test/unit/customer_test.rb,它们会按预期运行。我知道我在 Guardfile 配置中做错了什么,但它到底是什么?

4

1 回答 1

0

关于该run_all_on_start功能,这目前是v1.0.0 的未发布功能的一部分。希望很快就会发布一个新的测试版。与此同时,您可以尝试使用 master 的 guard-minitest:

gem 'guard-minitest', github: 'guard/guard-minitest'

请在尝试 master 分支后向GitHub 问题跟踪器报告任何问题,谢谢!

于 2013-05-20T23:37:45.383 回答