用RubyMine使用Guard是不可能的?

yii*_*bie 52 tdd rspec ruby-on-rails rubymine guard

出于某种莫名其妙的原因,RubyMine会自动保存您所做的每一个更改,因此每次按键都会触发Guard来运行您的测试!而最荒谬的是,显然没有办法禁用这个自动保存"功能".我只是想知道,RubyMine似乎是Rails开发人员中非常受欢迎的编辑器,而Guard似乎是用于自动化测试的不可或缺的工具.由于Guard无法与RubyMine合理使用,人们如何处理使用RubyMine自动化测试?

Net*_*rat 148

我整天都在使用RubyMine和Guard,事实上,Guard的一些部分已经在RubyMine中开发了.

您可以通过转到RubyMine > Preferences菜单并sync在搜索框中输入,然后System Settings从列表中选择来配置自动安全行为.

配置RubyMine自动安全行为

图片显示了我的设置,这些工作正常.您可能还想禁用Save files on frame deactivation,仅在手动保存时保存文件.

我更喜欢从终端使用Guard,但您可以通过从菜单中选择 添加Run配置来配置RubyMine以直接运行Guard Run > Edit configurations:

现在,您可以通过单击加号添加新配置,然后+选择IRB console:

添加新的运行配置

现在命名配置Guard,输入Guard into IRB脚本的路径并设置项目工作目录.您可能希望将Guard参数作为IRB参数输入,例如不同的Guard组等.

配置运行配置

我通过打开终端找到了我的Guard路径,更改为项目工作目录并输入which guard,这导致/Users/michi/.rvm/gems/ruby-1.9.3-p194/bin/guard我的RVM管理的Ruby 1.9.3-p194 SDK.

接下来,您需要在选项卡中检查捆绑包的上下文中的运行脚本Bundler.

使用bundle exec运行

现在按OK,你有一个全新的运行配置.在启动Guard之前,您应该通过添加将交互器配置为简单

interactor :simple
Run Code Online (Sandbox Code Playgroud)

到你的Guardfile.现在,您可以在RubyMine中直接运行(甚至调试)Guard:

警卫在行动

请享用!

  • 这是一个非常详细的答案:) (10认同)
  • 这仍然适用于RubyMine 7.我只想添加那些使用RBEnv`哪个guard`将返回RBEnv使用的shim/wrap /别名的路径,你必须检查你的gems文件夹以找到适当的保护脚本是实际的红宝石代码.在我的例子中,(ruby)守卫脚本位于:`〜/ .rbenv/versions/<some_ruby_version>/lib/ruby​​/gems/1.9.1/gems/guard-1.0.3/bin/guard` (6认同)
  • 确认这仍然适用于Rubymine 6和最新的卫士宝石.很棒的答案. (2认同)
  • 使用`rbenv which guard`来获取特定于rbenv的路径. (2认同)