On Monday, 30 March 2015 at 22:50:21 UTC, Andrei Alexandrescu wrote:
On 3/30/15 3:30 PM, Dicebot wrote:
tl: dr: please, no

We have put quite some effort into fighting default DMD behaviour of -unittest simply adding to main function and not replacing it. Initially many applications did run tests on startup because DMD suggested it is a good idea - some rather bad practical experience has shown this was a
rather bad suggestion. Accidental tests that start doing I/O on
productions servers, considerably increased restart times for services -
that kind of issues.

Violent agreement here. I was just saying unittests should be part of the build process, not the run process. Running unittests and then the app is a bad idea.

Ok, pardon me for misunderstanding :) I got confused by "you don't want to run application that isn't tested" part.

And if you suggest to build both test and normal build as part of single compiler call (building test version silently in the background) this is
also very confusing addition hardly worth its gain.

Making the format of unittest failures better would take us a long way. Then we can script builds so the unittest and release build are created concurrently.

If it is only format that matters you an always change it via custom test runner. For example, we do have a test runner that generates JUnit-compatible XML output for Jenkins - and that was possible to do with plain `unittest` blocks even with D1 :)

Main problem with changing default formatting is that it is pretty hard to choose one that is 100% right. Current one is at least simple and predictable being just an exception printout.

Reply via email to