NCrunch v3.15: UI and Console Tool improvements. Other goodies!

by Remco 21. April 2018 13:36

With v3.15 of NCrunch, we've further extended our work on the UI to modernise it and generally improve clarify.

This release also includes several other goodies, along with a fresh wave of fixes targeting recently reported issues that we've managed to resolve.

 

New Test Coverage Popup Window

 

The test coverage popup window has often been the target of criticism in the past, mostly because of its consumption of screen space.  Just take a look at this giant!


(Old test coverage popup window)

 

Part of the problem here is that the code needed to get the size right for this popup is deceptively complex.  There are many variables, ranging everywhere from the length of the test names through to environmental factors such as the size of the VS code window, DPI scaling, etc.  So to keep things simple, the popup was designed to take as much horizontal space as was available.  This approach works, but it's kind of ugly.


(New coverage popup window)

 

The new coverage popup window uses only as much space as it needs on the screen.  The rendering has been improved in some less obvious ways (such as borders, text alignment, etc).  We've also implemented new in-cell formatting options, allowing us to make the namespaces less overpowering and bring more attention to the test names themselves.

The selection bar has been given a cleaner, more modern look.  This change also goes beyond the coverage popup window and also includes other areas of the UI (such as the Tests Window).

 

New Exception Coverage Popup Window

 

The old exception coverage popup window has always been an eyesore under previous versions.  It's not just big, it's also a cluttered mess.


(old exception coverage popup window)

 

The biggest problem with this window is in it's structure.  When multiple exceptions cover a line of code (as is often the case with overlapping tests), the exception stack details are shown hierarchically under the tests themselves in a tree.  The more exceptions, the more cluttered it gets.  Highlighting the current row and leaving most of the tests collapsed only went so far in making this window legible.  It also takes far too much screen space.


(new exception popup window)

 

The new popup window does away with the tree, instead showing the exception in master-detail form.  Tests are listed at the top, and the exception for the selected test is at the bottom.  This new structure lets us integrate the exception message into the stack dump, so it reads in a more familiar way.  We've also managed to make use of the new inline formatting features to bring some colour and life to the test names themselves.

Oh, and it takes a whole lot less space too :)

 

Console Tool Improvements

 

We've been continuing to make improvements to the NCrunch Console Tool in v3.15.  Since v3.13, there's been a renewed focus on making this tool more useful and better integrated with CI systems, especially with Team City.

The console tool can now automatically report test results into Team City, taking into account many edge cases and trying to be as informative as possible.  This is not simple to do, as Team City makes many assumptions about the structure of a test run that don't necessarily hold true under NCrunch (i.e. NCrunch can run fixtures multiple times in an end-to-end run).

In v3.15, we've added a new configuration setting targeted towards the console tool: Pipeline Optimisation Priority.

This configuration setting allows the console tool to place a higher priority on longer running tests.  As a result, these tests are executed much earlier in the run, reducing the overall end-to-end execution time in environments with high parallelisation.  Although you can also adjust this setting inside the Visual Studio plugin, doing so will make it harder for the engine to report more meaningful results earlier in the run.

By popular demand, the console tool will now also perform a raw dump of all recognised settings with their values into the trace log.  This makes it easy to see which configuration values are being used by the console tool during the run, making troubleshooting easier.

 

Other Improvements

 

v3.15 also includes another round of fixes to improve performance and stability.  We've had a range of fixes targeting the new Churn Mode features based on user feedback.

For a full list of all changes, fixes and improvements, check out the release notes.

Oh, and also make sure you download the new release :)

Tags:

About Me

I'm Remco Mulder, the developer of NCrunch and a code monkey at heart.  I've spent the last decade consulting around Auckland and London, and I currently live in New Zealand.  Interests include writing code, writing tests for code, and writing more code! Follow me on twitter

Month List