How-To's

ReSharper 10 EAP 3: Continuous Testing and ReSharper Build

ReSharper 10 Early Access Program goes on and today we’ve prepared a new build highlighted with major features in ReSharper and dotCover.

ReSharper

ReSharper Build

ReSharper Build is a brand new ReSharper 10 feature that originated from an internal tool that the team used to build ReSharper itself. ReSharper Build is an out-of-process incremental build tool that can take advantage of multiple processes, visualizes different kinds of project build status, and is optimized for large solutions with lots of dependencies.
ReSharper Build & Run tool window

At this point ReSharper Build supports most .NET project types available in Visual Studio, except for Web Sites and ASP.NET 5 applications. Unmanaged C++ can be built using ReSharper although not all features will be available in this case. If you choose to use ReSharper Build and the solution you’re going to build is not supported (or contains projects that are not supported), ReSharper Build will automatically switch to Visual Studio’s native build process.

Note that ReSharper Build is off by default. In order to switch to ReSharper Build instead of Visual Studio’s native build process, go to ReSharper | Options | Tools | ReSharper Build and select ReSharper Build.

ReSharper build switch to VS Build

We’ll follow up shortly with a separate detailed blog post on the ins and outs of ReSharper Build.

Code style and configuring inspections

ReSharper 10 EAP 3 comes with a set of changes aimed to simplify configuration of and complying with code style settings.

For example, inspection severity can now be configured right from the Alt+Enter menu, without using a modal window:
Configuring inspection severity from bulb menu in ReSharper 10

Find similar issues modal window is now used only for searching in a custom scope. All default scopes, such as solution, project and file, can be applied right from the ALt+Enter menu.

A part of code style settings can now also be configured without leaving the Alt+Enter menu:
Configuring code style from the bulb menu in ReSharper 10

Additionally, there are new code inspections with quick-fixes that detect explicit or implicit access modifiers for types and type members, let you use a pre-configured order of modifiers, and help you join or separate attributes in a section.
A quick-fix to improve the order of modifiers

Other changes

On another note, there are also changes related to TypeScript and JavaScript, such as improved TSX support (though still not final) and JSX support in plain .js files.

If you’re interested, here’s a detailed list of fixes that made it into ReSharper 10 EAP 3.

dotCover

Continuous Testing

If there’s anything that this EAP build proves, it’s that you should never, ever lose hope. dotCover boosts its version to 4.0 and reveals a preview of Continuous Testing.
Starting a Continuous Testing session
Following an initial code coverage analysis of your solution, dotCover then tracks your code changes, figures out which tests are affected by them, and then it can re-run the affected tests as soon as you hit Save, or use a different strategy of reacting to code changes.
Continuous Testing Session tool window
We’ll write more about the way Continuous Testing is implemented very soon. We know there’s quite a lot of ways to improve the feature but if you’re ready to try it out, please let us know of any issues you’ve had on your first approach.

ReSharper C++

In addition to a set of fixes, the new ReSharper C++ EAP build incorporates the following changes:

  • Usage-aware Go to declaration is now supported in a way similar to the mainline ReSharper.
  • New code inspections are available to detect uninitialized base class, accompanied by a quick-fix to initialize a member/base class.
  • Evaluation of compile-time expressions of floating point types is added.

What’s next?

First of all, make sure you didn’t forget to actually download the new EAP build.

We are expecting more EAP builds coming shortly so stay tuned for further updates.

image description