23.04.2020 14:01, Russel Winder пишет:
Hi,
I need to start a process before the tests run, and terminate it after
the tests run. A module with a shared static constructor and shared
static destructor sounds like the way of doing this since the
constructor is run before main and the destructor after main. However I
am using unit-threaded, not for the threads but because it is great for
a whole load of other reasons. In fact the threads are becoming a
problem.
As far as I can tell main is terminating before all the tests are
complete which means the shared static destructor is executing before
all the tests are complete.
I would use Fixture (a class derived form TestCase) here and derive all
tests from it. It allows you to start your process before all test in
`setup()` Fixture member and terminate it after in `` and probably lets
you run the tests simultaneously.
To test this hypothesis I want to run single threaded. unit-threaded
says this is possible using a command line option -s. The question is
which command line? dub test doesn't accept it and neither does the dub
command creating ut_main.d
Did you try `dub test -- -s`?