Automation test with Guard and Rubymine integration.

You may already know about rspec and rubocop, a testing tool and a checking tool (for ruby coding styles). They are not realted to be referred here in a same post but we’re using them these days in our company projects though. And actually we’re going to play with automation tests using guard and its plugins today, which are guard-rspec and guard-rubocop.

Rubocop and RSpec

For you who haven’t heard about rubocop and rspec  have a look here:



guard helps us having things rerun automatically when new changes get saved. guard-rspec gets a spec re-run when you change and save it, rubocop gets fired by guard-rubocorp immediately after any of your files got saved (of course only the ones in the rubocop.yml configuration list), specs get run by guard-rspec when any of your spec gets changed and saved.

Note: One interesting thing is guard-rspec re-runs only the spec recently changed, not the whole spec directory.

Firstly make sure you have guard gem installed. Then add guard-rspec and guard-rubocop to the Gemfile:

Secondly let’s generate the Guardfile which contains the configurations.

or by

Lastly, open another console and type in guard

We now have specs and files automatically rerun/re-checked whenever new changes get saved 🙂

RubyMine integration

Once we have both Guard running and Rubymine installed,  we can make them work together seamlessly with just a few more steps.

Step 1: Enable “Save files on frame deactivation”

Open the project directory with Rubymine, go to File > Settings then type save in the Search box, make sure the checkbox for Save files on frame deactivation is checked.



Step 2: Add Guard configuration



  • Go to Run > Edit Configuration
  •  Add new IRB concolse by clicking the + sign
  •  Name the new IRB console as ‘guard’ (or whatever you like)
  •  Set the Guard path in the IRB script field. We can retrieve this path by opening a new Terminal, navigate to the project directory and type which guard

That’s it, go to Run > Run "guard"  and see rubocop and rspec run when we save new changes.


Have fun.

Add a Comment

Your email address will not be published.