On Fri, 12 Apr 2013 18:52:50 -0400, William <[email protected]>
wrote:
I'm compiling a medium-sized project written in D with the -unittests
flag. I have some writeln statements in my unit tests, for debug
purposes, and I've noticed that certain unit tests are being run more
than once. Sample output is along these lines:
DEBUG: unit test started...
DEBUG: loop found whatever
DEBUG: iteration successful
DEBUG: bar is equal to bar
DEBUG: unit test passed...
DEBUG: unit test started...
DEBUG: loop found whatever
DEBUG: iteration successful
DEBUG: bar is equal to bar
DEBUG: unit test passed...
DEBUG: unit test started...
DEBUG: loop found whatever
DEBUG: iteration successful
DEBUG: bar is equal to bar
DEBUG: unit test passed...
is this standard behavior for DMD? Is it documented anywhere? It's not
much of a problem, but it strikes me as rather odd, and makes the debug
output difficult to read.
Are your unit tests inside templates? If so, they are instantiated once
per template. To fix, move outside the template.
This actually can be a nice feature, and at the same time horrible. It's
nice because you can parameterize your unit tests! It's horrible because
you have to be careful your unit tests are valid for all possible
instantiations!
-Steve