2

我正在开发一个在 Ruby (1.8.7) 上运行 Rails (2.3.18) 的内部 Rails 应用程序,测试用 Test::Unit (2.5.4) 和 Shoulda (2.10.2) 编写

Guard (1.6.2) 在启动时通过 guard-test (0.7.0) 运行所有测试,但随后它会进入 Pry (0.9.10) 提示符,而不是监听文件更改。我的 Gemfile 中没有 Pry,但它出现在 Guard 下的 Gemfile.lock 中,

我使用 Guard 的唯一原因是在文件更改时重新运行测试,这适用于我的 gem 和其他项目......如果我点击 [enter],所有测试都将运行,但这需要的时间比一个要长得多我希望它运行的文件。

警卫秀:

  all_after_pass : true

  all_on_start   : true

  keep_failed    : true

  test_paths     : ["test"] 

保护文件:

guard :test do

  watch(%r{^test/.+_test\.rb$})

  watch('test/test_helper.rb')  { "test" }

end

如何配置 Guard 以跳过 Pry 提示并只运行更改后的测试?

4

2 回答 2

0

取自Guard Wiki

If you are on Mac OS X and have problems with either Guard not reacting to file changes or Pry behaving strangely, then you probably suffer under a Ruby build that uses `libedit` instead of `readline`.

所以我强烈建议遵循 Guard wiki 中的说明,并使用适当的 Readline 支持重新编译您的 Ruby 版本。

作为替代方案,您也可以使用gets基于简单交互器的旧 Guard 版本 1.4.0,请参阅旧README以了解该版本支持的功能。要获得简单的交互器,请添加

interactor :simple

到你的Gemfile.

于 2013-03-28T12:58:32.767 回答
0

我使用 no_interations 选项执行此操作,以编程方式启动警卫

Guard.start :no_interations => true`
于 2014-09-23T00:20:09.040 回答