Daily Usage Issues

Churn mode - Not working with multiple threads?

Started by GreenMoose on 8,876 views

I have set up multiple test runners, but when running in churn mode it seems it uses last test status, rather than last failed one.
See below for an example (it fails after 11 seconds):
http://recordit.co/C49ItCyPxK

p.s. forum does not seem to support animated gifs in image tags d.s.
Hi, thanks for sharing this.

This shouldn't normally happen. Can you produce this consistently with any test in your suite? Does it happen when churning only one test?
Remco wrote:Hi, thanks for sharing this.

This shouldn't normally happen. Can you produce this consistently with any test in your suite? Does it happen when churning only one test?


It happens both if I run 2 (duplicating test below for instance) or 1 test. I can repro it easily with a test like this (allowing 6 parallell background tasks):

[TestFixture]
internal class ChurnTest
{
[Test]
public void CanFailSomeTime()
{
Thread.Sleep(1000);
var rnd = new Random();
if (rnd.Next(20) == 10)
Assert.Fail("Failed");
}
}
Thanks, I've managed to reproduce this as you've described it. It's being caused by the concurrency. Churn mode deactivates as soon as all targeted tests have failed, but the passing results still come after it and override the failure.

We have a fix in the works that I'd like to publish for you soon as a dev build. I'll let you know as soon as it's available.
Here is the build with a fix for this issue. I'm keen to hear how it goes.

http://downloads.ncrunch.net/NCrunch_Console_3.15.0.1.msi
http://downloads.ncrunch.net/NCrunch_Console_3.15.0.1.zip
http://downloads.ncrunch.net/NCrunch_GridNodeServer_3.15.0.1.msi
http://downloads.ncrunch.net/NCrunch_GridNodeServer_3.15.0.1.zip
http://downloads.ncrunch.net/NCrunch_LicenseServer_3.15.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2008_3.15.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2010_3.15.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2010_3.15.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2012_3.15.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2012_3.15.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2013_3.15.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2013_3.15.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2015_3.15.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2015_3.15.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2017_3.15.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2017_3.15.0.1.zip
Remco wrote:Here is the build with a fix for this issue. I'm keen to hear how it goes.

Works fine for me!

Although, the coverage marking for failing test also shows the line for passing tests as failed, when I would expect it rather to be gray:
[img=https://i.imgur.com/7pdVfba.png]ChurnTest[/img]

Edited

GreenMoose wrote:
Although, the coverage marking for failing test also shows the line for passing tests as failed, when I would expect it rather to be gray:


Yes, this looks like defective behaviour. NCrunch is discarding the passing results that were run in parallel with the failure, but it isn't throwing away their code coverage. That's not right. I'll see what I can do about arranging a fix. Thanks for the report.
Ok, the build below includes a fix for this:

NCrunch_Console_3.15.0.1.msi
NCrunch_Console_3.15.0.1.zip
NCrunch_GridNodeServer_3.15.0.1.msi
NCrunch_GridNodeServer_3.15.0.1.zip
NCrunch_LicenseServer_3.15.0.1.zip
NCrunch_VS2008_3.15.0.1.msi
NCrunch_VS2010_3.15.0.1.msi
NCrunch_VS2010_3.15.0.1.zip
NCrunch_VS2012_3.15.0.1.msi
NCrunch_VS2012_3.15.0.1.zip
NCrunch_VS2013_3.15.0.1.msi
NCrunch_VS2013_3.15.0.1.zip
NCrunch_VS2015_3.15.0.1.msi
NCrunch_VS2015_3.15.0.1.zip
NCrunch_VS2017_3.15.0.1.msi
NCrunch_VS2017_3.15.0.1.zip
Remco wrote:Ok, the build below includes a fix for this


It now works as expected, thanks :) (was it intentional you had the same version number for both builds?)
GreenMoose wrote:
It now works as expected, thanks :) (was it intentional you had the same version number for both builds?)


No, this wasn't intentional .. we're restructuring our release build system. Somehow this one went out twice. I guess it just overwrote the old build.


Post a reply

Log in to reply.