Ruby on rails 如何将Guard配置为跳过Pry提示,只运行已更改的测试?

Ruby on rails 如何将Guard配置为跳过Pry提示,只运行已更改的测试?,ruby-on-rails,ruby,tdd,guard,pry,Ruby On Rails,Ruby,Tdd,Guard,Pry,我正在开发一个在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,但它出现在我的Gemfile.lock防护下面 我使用Guard的唯一原因是在文件更改时重新运行测试,这对我的gems和其他项目都是如此。。。如

我正在开发一个在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,但它出现在我的Gemfile.lock防护下面

我使用Guard的唯一原因是在文件更改时重新运行测试,这对我的gems和其他项目都是如此。。。如果我点击[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提示,只运行已更改的测试?

摘自:


如果您在Mac OS X上,或者Guard对文件更改没有反应,或者Pry行为异常,那么您可能会在使用'libedit'而不是'readline'的Ruby构建中遇到问题。

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

作为替代方案,您也可以使用较早的Guard版本1.4.0,该版本随简单的基于
gets
的interactor一起提供,有关该版本支持的功能,请参阅较早的Guard版本。要获得简单的交互程序,请添加


交互者:简单


对于您的
Gemfile

我使用了无交互选项,通过编程启动了guard

Guard.start :no_interations => true`

我应该补充一点,我不想禁用交互*因为我确实希望能够点击[enter]在重构的特定点上运行所有测试。*正如这里推荐的那样:我遗漏了文件系统事件gem info:rb fsevent(0.9.3),它不会放到Pry控制台,而不是观察更改。它下降到一个撬控制台,然后观察变化。您确定您的
watch()
配置正确吗?尚不清楚是否
rb fsevent
为您解决了问题它对文件更改没有反应将“rb readline”添加到GEM文件中(运行股票Mac OS X Ruby)