Daily Usage Issues

Understanding 'Only automatically run impacted tests'

Started by glinkot on 5,521 views

Again just familiarising myself with the tool, quick question. I've set the abovementioned option, and have 3 tests testing a single method. If i edit the code in one of the tests, all 3 retrigger to test again. I would understand this if I changed the code under test, but why would the other tests ever need to rerun when the targeted code has not changed?

I see the feature is mentioned as experimental - but just thought I'd ask as I'm working out if this slower mocking framework I'm trying will be tolerable in real use :)
At the moment NCrunch's impact detection is operating at a very basic level. When you make a change to a source file, it will examine the file to see which tests cover it, then consider all of these tests as 'impacted'.

This behaviour is because NCrunch doesn't have an understanding of the programming language itself (C#/VB), since it doesn't physically parse it. The tool is instead built on top of other abstractions above the language level (such as MSBuild), so the 'flat-file' impact detection is just a best effort to try and prioritise tests more intelligently without tying the engine down in expensive deep impact analysis.

There are new opportunities appearing in this area with the production release of Roslyn later this year. I hold high hopes that these opportunities will enable far superior impact detection features within NCrunch.
Thanks for that. Yes Roslyn will be interesting!

Cheers

Post a reply

Log in to reply.