April 11, 2017 Re: Testing D codes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Russel Winder | 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. |
Copyright © 1999-2021 by the D Language Foundation