Rider EAP update: unit testing, .NET Core, and more

We recently (June 20) published a new private build of Project Rider, our standalone, cross platform C# IDE. We’re getting closer to starting the public preview, and so we’ve decided to start sharing details of the new features that are making it into the latest private EAP builds.

Obviously, previous EAP builds have had their fair share of new features, such as the File Structure view, Solution Wide Analysis, and the NuGet Explorer, as well as more fundamental architectural work, such as enabling inspections, the Alt+Enter menu, various refactorings and of course build and debug. We’ll take a look at some of these existing features in posts closer to the public EAP release, but for now, we’re going to start talking a bit more about what’s in the latest builds.

So, what’s new with the latest EAP?

As well as fixing a number of bugs (including some with the NuGet support), we’ve added some new things that we think you’ll like. Here are the highlights:

  • Unit test runner
  • ASP.NET Core support
  • To-do Explorer
  • Stack Trace Explorer

Unit Test Runner

The big news for this release is the addition of the unit test runner. This has been a very heavily requested feature, and we’ve worked hard to bring an initial version to Rider.

You should find the functionality very familiar if you’re already used to ReSharper. Rider has support for NUnit and xUnit by default. It does not currently support MSTest, as MSTest is too closely tied to Visual Studio.

Rider will discover tests in the editor, as you type, just like in ReSharper, and add a gutter icon to indicate test classes and test methods. You can either click this icon or use the Alt+Enter menu to run tests, which will be displayed in a test runner window very similar to the one in ReSharper.

Run tests from the alt enter menu

The tool window has multiple tabs, one for each session. The tab will show a tree view of the tests that are going to be run, with status icons to show pass, failed, skipped, etc. The output pane shows any output or failure messages, with the stack trace parsed and click-able for easy navigation. Double clicking the test in the tree will also navigate to the test method in the editor, and there is a toolbar to control running, stopping, deleting, grouping and so on.

Running tests

This is initial support, and there are still a number of features that we haven’t yet implemented, such as debugging, or more ubiquitous means of running tests. But don’t worry, we’re not done yet. We wanted to get this feature into your hands as soon as we could, so you can try it out, and let us have your feedback!

ASP.NET Core support

Rider uses ReSharper as an out of process language server, and is built from the same codebase that is the current 2016.2 EAP. This means it benefits from ReSharper’s support for ASP.NET Core projects, and can create new and open existing .NET Core projects. Furthermore, Rider includes project templates that allow you to create a new .NET Core executable or class library, so you can build your own projects from scratch.

Like Visual Studio, Rider requires existing projects to have both  .sln and  .xproj files; it doesn’t support opening a  project.json file directly. And of course, with the recent announcements that  project.json is being replaced by MSBuild  .csproj files, it is now very unlikely that we will implement this support only for it be obsolete in a few months time. If you have an existing project that only has  project.json, you can create a new project in a temporary folder and copy the  .sln and  .xproj files across and Rider will be able to open the project.

Once a project is open, Rider fully recognises the new style of referencing packages rather than assemblies, and the References node in the Solution Explorer will show packages and dependencies. Other functionality – smart editing, code completion, navigation and so on – just works.

We even get to take advantage of ReSharper’s advanced functionality, such as code completion and navigation for controller actions, and that includes from ASP.NET Core’s new tag helpers in  .cshtml files (oh yes, we support  .cshtml files too, with syntax highlighting, code completion, navigation, and even code completion and find usages on CSS classes).

Tag helper in code completion

To-do Explorer and Stack Trace Explorer

Another couple of new tool windows that we have added in this release are the To-do
Explorer and the Stack Trace Explorer.

The To-do Explorer works very much like you’d expect from ReSharper – scanning comments in your code that match // TODO: Fix this and pulling those out into IntelliJ’s own To-do Explorer tool window. Each item is shown as a node in the tree, grouped by file, and double clicking the item will take you to the line in the editor.

The To Do Explorer

Even better, we get to take advantage of existing IntelliJ functionality. From the Commit Changes dialog, if the Check TODO checkbox is selected, Rider will look for to-do items in the changes being committed, and allow you to review them – but only if it’s a new to-do item! The comment has to be in a block of text that has been changed.

Commit dialog checking for TODO items

The Stack Trace Explorer is simple, under the Tools menu, select Analyse Stack Trace. A new dialog opens that shows a simple text control, which shows the contents of the clipboard by default. Clicking OK on this dialog opens the Stack Trace Explorer, which parses the stack trace and makes each element clickable, so you can use it to navigate to any method or type in the stack trace.

Stack trace explorer

Summary

One thing to point out is that it’s not just updates to ReSharper that make it into Rider, but updates to the IntelliJ Platform, too. This build of Rider is based on a newer version of the IntelliJ Platform that gives new features over previous builds, such as improved log views for Git and Mercurial in the source control integration, and even font ligature support in the editor!

However, while it is nice to pull in the latest platform updates, this version of the IntelliJ Platform is still in EAP, which means some of the plugins in the default plugin repository are not yet marked as being compatible. For example, IdeaVim, which adds Vim emulation to the editor, requires an install of an EAP build, from an additional EAP plugin repository, as detailed in the readme.

As ever, please remember that this is still a private EAP build – we’re actively building the product and implementing features, and still require as much feedback as possible. Please try it out (if you haven’t already signed up, you can easily do so on the website), and let us know about any issues you encounter.

This entry was posted in How-To's and tagged , , , . Bookmark the permalink.

28 Responses to Rider EAP update: unit testing, .NET Core, and more

  1. Mike-EEE says:

    Fantastic, team! Great work. :)

    This really makes so much sense, as R# Ultimate is basically its own IDE. You’ve wisely/smartly done the right thing in taking this step, which is the logical/natural progression of all your excellent work. Looking forward to the results of your great efforts!

  2. So is the latest bits available to eap participants? The last email I received with a link was June 20th.

    Super excited to try the latest asp.net core additions!

    Thanks,
    Matthew

  3. Øystein Krog says:

    I understand that this Rider is still very much WIP, but I would be more excited about each EAP update if some basic functionality was fixed. I still can’t even start our application (anycpu desktop wpf app), much less debug it. I would very much like to help test but without the basic I tend to fall back to VS.
    I try to always install every EAP and I report all exceptions in the IDE.

  4. Urs Meili says:

    any chance that TFS integration is coming soon? https://youtrack.jetbrains.com/issue/RIDER-458. Before that issue is fixed, a lot of people have no chance to try Rider out on “real” projects.d

  5. Pingback: Dew Drop - July 8, 2016 (#2283) - Morning Dew

  6. Pingback: Drupal 7.50, neuer EAP-Build für Project Rider & die CMS-Auswahl

  7. I am a big fan of JetBrains, I use all most all the product your company produce. At the same time, I am a big fan of Visual Studio too. Why is JetBrains trying to compete with Microsoft, why not concentrate the $$ into NET tools JetBrains provide right now.

    • Hadi Hariri says:

      Thanks for your support Jay. We continue to invest and develop out .NET tools, and Rider actually, as has been mentioned numerous times, relies on these tools and right now particularly on ReSharper. This is because it shares the same code on the backend. Our investment in .NET tools for Visual Studio will not diminish.

      Rider is a new offering we’re providing as a different experience and to fill a specific area.

    • maedhros1981 says:

      I think it could prove to be a nice alternative, provided that the IDE will be superior in performance.
      VS2015 has become extremely resource power hungry to the extent that it starts to make sense for some to change IDE for that reason alone. Sure, MS has optimized and stabilized it quite a bit in Updates 2 and 3 expecially, but it is still BIG and hungry!

      If JetBrains succeed in making a comprehensive IDE that is as light-weight as VS Code but with the power of ReSharper, DotCover, DotTrace, DotMemory and some nifty other features…. it is sure to become a preferred tool for many.

      Also, remember that not everyone is as lucky as us to have a virtually free version of VS2015 in BizSpark or Action Pack… in which case VS2015 is extremely expensive 😉

      • Chris says:

        You should uninstall Resharper and see the dramatic performance improvement without Resharper. Resharper adds a lot, but it really bogs Visual Studio down.

        Interesting to see JetBrains continuing to push their own codebases away from MS’s in this manner similar to how they refuse to utilize Roslyn. Sooner or later someone will eat their lunch. I’m hoping for sooner given these trends. It’d be nice to have Visual Studio perform like it was supposed to…

    • Jay don’t forget the huge Mac developer base which .NET Core and Rider is opening up to – and Microsoft’s bet on a Windows-less future rests on.

      Windows has long died in consumers minds and the support of new developers along with it. Good luck finding any devs on the Windows front in the new-grads to young-30s generation. .NET’s success relies on its transition to Mac to re-capture the minds of the next generation.

      JetBrains, thanks for standing up and adding the pivotal piece needed to augment Microsoft’s effort in make this happen! We all want .NET/C# to win and live on in the new cloud & mobile-first era we now live in =)

  8. maedhros1981 says:

    I’m a huge fan of JetBrain tools and actively using ReSharper Ultimate and TeamCity on a daily basis. – I am completely handicapped without this and I even made it a requirement in our company to have ReSharper! 😉

    Looking forward to testing this new IDE soon. – If it outperforms VS2015 but has the same functionality for .NET Core applications, I am sure it will be a success.

    Keep up the great work you guys are doing! :-)

  9. Dev says:

    Is Xamarin support coming? Thanks!

  10. Vadim says:

    What i should select in toolset if i want to build by dotnet (coreclr).
    If i put “/usr/bin/dotnet”
    i got “Cannot open assembly ‘/usr/bin/dotnet’: File does not contain a valid CIL image.”

    • Matt Ellis says:

      The toolset is the location of msbuild or xbuild, which Rider will use to load a solution, and to get reference information. If you create a new, or open an existing .net core project, builds should automatically run dotnet build for you, based on dotnet being in the current path. If your existing .net core project doesn’t have a .sln or .xproj file, you can create a new throwaway project from the templates, and copy the .sln and .xproj files over to the existing project.

      • Vadim says:

        I’ve created new project from the rider and got message that i should select toolset. And found that i have no toolsets in settings.

  11. Antonio Ramos says:

    In my company we use A LOT and love Webstorm features (history, comparing files with server) and right now we are using both VS and Webstorm in daily basis.

    It will be awesome if Rider could have FTP support and those above features. This will avoid the need to jump between IDE’s.

    Anyone knows if it will be? Or if it’s schedule?

    Thanks

    • Jura Gorohovsky says:

      Antonio, if you mean Local History, then it’s already available in Rider by virtue of it being an IntelliJ-based product, on par with WebStorm.

      FTP and comparing files with server is AFAIK available via the Remote Host Access plugin that’s not currently made available in Rider but I don’t expect any significant issues bundling the plugin.

      I suggest that you file a request in Rider issue tracker to do this.

  12. Bartek says:

    Is it possible to import keymaps from visual studio?

    • Jura Gorohovsky says:

      Bartek, no, there’s no way to import keymaps directly.

      What you can do is choose “Visual Studio” keymap in Rider, which is the closest there is to Visual Studio’s native keymap, and add any necessary customizations to it.

  13. Are there project templates to start a new ASP.NET Core project?

    I only notice the following templates:
    – DotNet Core Class Library
    – DotNet Core Console App

    Eager to try out the ASP.NET Core support but we’ve had nightmares getting things working from scratch (hand-written project files) before.

    Thanks!

    • Li Tan says:

      DIY it for now.
      1. Create a DotNet Core Console App with Rider
      2. Scaffolding a ASP.NET MVC Application using Yeoman
      3. Copy the ASP.NET MVC Application files and replace the DotNet Core Console App files
      4. Open Rider and DONE.

  14. Onam says:

    Interestingly downloaded the latest version and it doesn’t detect my unit tests. I am using .net core and nunit. When I attempt to run them in the IDE it says AssertionError: Deferred.Base=com.intellij.util.ui.EmptyIcon@3fc00000. This is after a fresh install too.

    • Matt Ellis says:

      We’re still building support for unit testing .net core projects – we need to make it work correctly cross platform. Right now tests won’t run correctly, and sometimes won’t get discovered correctly. It’s coming, though.

  15. R4z says:

    You say that you support .cshtml as well, but in my Rider

    Rider 1.0 EAP
    Build #RS-163.10479, built on December 19, 2016

    This is definitely not the case, no syntax highlighting or support.
    Is this something that need to be configured somewhere?

Leave a Reply

Your email address will not be published. Required fields are marked *