Running Tests in RubyMine: Overview & Improvements
RubyMine comes with a testing suite for running RSpec, Minitest, Cucumber, and other tests based on your current context, and working with them in a friendly graphical user interface. Let’s see how it works in the following example.
Once your database and test environment are all set up, you can run all tests in your application, directory, or file, or even run any specific test. Simply navigate to the desired scope, and choose Run test(s)… from the context menu. Alternatively, use the keyboard shortcut Ctrl+Shift+R on Mac or Ctrl+Shift+F10 on Linux/Windows:
When you run a test in RubyMine for the first time, the IDE creates a temporary run configuration for it. You can access and edit it, or create a new test configuration in the Toolbar:
In the Run/Debug Configuration dialog, you can add additional Ruby arguments, environment variables, and other options to specify the way you want to run your tests:
As soon as you run a test, RubyMine opens the Run Tool Window where you can see the results and navigate to any of them by double-clicking the test icon. Alternatively, you can invoke the context menu and choose Jump to Source:
Some other options, such as sorting and exporting tests, are also available from the Run Tool Window.
Rerun Failed Tests
In the previous major release, we announced a useful ability to rerun only failed tests. This feature comes in handy when you’re debugging or fixing tests, and you want to rerun only the failed ones, instead or rerunning all of them. This takes just one click:
RubyMine 2018.3 also adds a handy gutter at each test method. These gutters are visual anchors that show you every particular test that can be run in a file. They also help you run tests faster than from the context menu. Again, one click is all you need:
Navigate to tests and back
Finally, RubyMine provides a way to quickly navigate from a test subject, like a controller or a model, to its test, and back. To do so, go to Navigate | Test / Test Subject or press ⌘⇧T / Ctrl+Shift+T:
By the way, if a test file doesn’t exist, RubyMine will suggest creating one based on the test framework you are using, and will navigate to the newly created test file. Even if a gem for the desired test framework is missing in your app, the IDE will first install it, and then create the missing test file:
Your RubyMine Team
Subscribe to Blog updates
RubyMine 2024.1 Early Access Program is Open!
The RubyMine 2024.1 Early Access Program has now started! In this blog post, we’ll share our plans for the upcoming release and the areas we’re currently focusing on. The first EAP build includes performance and usability improvements, bug fixes, and updates to RBS language support.Now, you c…
RubyMine: How To Accelerate Project Indexing?
Hello everyone! We're excited to share more tips and tricks to enhance your RubyMine experience. In September, our team attended the Euruko 2023 conference, where RubyMine developer Maxat Mansurov delivered a fascinating talk on project indexing. Indexing is a process that involves forming indexe…
RubyMine 2023.3 EAP Update
Hello everyone! We’re back with an update on the state of the 2023.3 Early Access Program. You can download the latest EAP build from our website, via the free Toolbox App, or by using snaps for Ubuntu. Here are the biggest highlights of this release: Performance improvements As we me…
The RubyMine 2023.3 Early Access Program Is Open!
Hello everyone, The third RubyMine Early Access Program of 2023 is underway! The key change in the first EAP build is an important indexing optimization. By refactoring our code base, we’ve doubled RubyMine’s indexing speed compared to v2023.1. This is particularly noticeable when working…