On 01/05/2014 18:12, Steven Schveighoffer wrote:
On Thu, 01 May 2014 10:01:19 -0400, Atila Neves <atila.ne...@gmail.com>
wrote:

On Thursday, 1 May 2014 at 11:44:12 UTC, w0rp wrote:
On Thursday, 1 May 2014 at 11:05:55 UTC, Jacob Carlborg wrote:
On 2014-04-30 23:35, Andrei Alexandrescu wrote:

Agreed. I think we should look into parallelizing all unittests. --
Andrei

I recommend running the tests in random order as well.

This is a bad idea. Tests could fail only some of the time. Even if
bugs are missed, I would prefer it if tests did exactly the same
thing every time.

They _should_ do exactly the same thing every time. Which is why
running in threads or at random is a great way to enforce that.

But not a great way to debug it.

If your test failure depends on ordering, then the next run will be
random too.


I agree with Steven here.

Actually, even if the failure does *not* depend on ordering, it can still be useful to run the tests in order when debugging: If there is a bug in a low level component, that will likely trigger a failure in the tests for that low level component, but also the tests for higher-level components (the components that use the low level component). As such, when debugging, you would want to run the low-level test first since it will likely be easier to debug the issue there, than with the higher-level test.

Sure, one could say that the solution to this should be mocking the low-level component in the high-level test, but mocking is not always desirable or practical. I can provide some concrete examples.

--
Bruno Medeiros
https://twitter.com/brunodomedeiros

Reply via email to