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

Posted on by Matt Ellis

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.

Comments below can no longer be edited.

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

  1. Mike-EEE says:

    July 7, 2016

    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. Matthew Reily says:

    July 7, 2016

    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

    • Matt Ellis says:

      July 8, 2016

      Yes, this post is about the EAP sent out on June 20th.

  3. Øystein Krog says:

    July 7, 2016

    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.

    • Matt Ellis says:

      July 8, 2016

      Sorry to hear that, and thanks for sticking with it! Could you log the issue with running your app, please?

  4. Urs Meili says:

    July 8, 2016

    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

    • Matt Ellis says:

      July 8, 2016

      Yes, we’re planning to address this in the next EAP build.

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

    July 8, 2016

    […] Rider EAP update: unit testing, .NET Core, and more (Matt Ellis) […]

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

    July 8, 2016

    […] wurden einige Bugs behoben; ausführliche Informationen zu allen Neuerungen bietet der Post im JetBrains-Blog. Den genauen Release-Termin hat das Entwickler-Team noch nicht bekanntgegeben, jedoch scheint der […]

  7. Jay Janarthanan says:

    July 8, 2016

    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:

      July 9, 2016

      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:

      July 11, 2016

      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:

        July 18, 2016

        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…

    • Marcel Bradea says:

      July 21, 2016

      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:

    July 11, 2016

    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:

    July 11, 2016

    Is Xamarin support coming? Thanks!

  10. Vadim says:

    July 11, 2016

    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:

      July 12, 2016

      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:

        July 13, 2016

        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:

    July 14, 2016

    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:

      July 19, 2016

      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:

    July 19, 2016

    Is it possible to import keymaps from visual studio?

    • Jura Gorohovsky says:

      July 19, 2016

      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. Marcel Bradea says:

    July 21, 2016

    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:

      August 10, 2016

      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:

    October 21, 2016

    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:

      October 26, 2016

      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:

    January 9, 2017

    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?

Subscribe

Subscribe to .NET Tools updates