10.04.2017 19:20, Russel Winder via Digitalmars-d-learn пишет:
On Fri, 2017-04-07 at 11:40 +0300, drug via Digitalmars-d-learn wrote:

[…]
I do this. I have unittests in the module sources and have a
separate
subpackage intended for more advanced testing only.

Do you have an example project I could take a look at?

Unfortunately it's proprietary code. It's like this:
```
module tests;

import std.datetime: dur;
import core.thread: Thread;

import unit_threaded.runner;
import unit_threaded: TestCase, shouldEqual;

class Fixture: TestCase
{
    override void setup()
    {
        // do common things for derived test
    }
}

class TestToiDataSerialization: Fixture
{
    override void test()
    {
        // the test, is using setup() of the fixture above
    }
}

class TestCommandMessageSerialization: Fixture
{
    override void test()
    {
        // and so on
    }
}

class TestNetworking: Fixture
{
    override void test()
    {
        // and so on
    }
}

int main(string[] args)
{
    import std.experimental.logger: LogLevel, globalLogLevel;

    try
    {
        globalLogLevel = LogLevel.fatal;

        return args.runTests!(
"tests", // run all tests (three in this case) of the `tests` module (this module)
        );
    }
    catch(Exception e)
    {
        import std.stdio: stderr;
        stderr.writeln(e.msg);
        return 1;
    }
}
```
You can place some tests in other module, then this module should be added to runner.

Reply via email to