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
Thanks, we've got you!
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 wi…
Collaborative Programming in RubyMine
Hi everyone, We're back with a new how2pro blog post unveiling another cool RubyMine feature – the Code With Me plugin. When you're knee-deep in a complex task or tangling with an issue that's testing your limits, having someone by your side can make all the difference. Additionally, in an educati…
Performance Improvements in RubyMine 2023.1
Hello everybody, The new release is fast approaching, so it’s time to unveil the performance enhancements you can expect from RubyMine 2023.1. Faster code completion When developing and supporting RubyMine, we analyze a great load of anonymized usage data. A lot of recent data pointed to the fact t…
RubyMine 2023.1 EAP5 Is Out!
Hello everyone, RubyMine 2023.1 EAP5 is now available! Below you can find the most notable features in this build. We encourage you to try them out and share your feedback in the comments or in our issue tracker. Migration of Ruby code to the Symbol API In order to improve code insight actions such…