On Friday, 15 July 2016 at 11:59:51 UTC, Bahman Movaqar wrote:
On 07/15/2016 04:16 PM, Jerry wrote:
Unittests have to be inside a module to be run on DMD atleast. So putting module foo at top should fix it.

Strange.  Still not getting picked up.

    $ dmd --version
    DMD64 D Compiler v2.071.0
Copyright (c) 1999-2015 by Digital Mars written by Walter Bright

[app.d]
    module app;

    import std.stdio;

    private int incBy1(int i) { return i + 1; }

    unittest {
      assert(incBy1(1) == 200);
    }

    void main() {
      writeln(incBy1(1));  // which prints 2
    }
[/app.d]

    $ dub test
    Generating test runner configuration '__test__library__' for
'library' (library).
    Performing "unittest" build using dmd for x86_64.
    dplay ~master: building configuration "__test__library__"...
    Linking...
    Running ./__test__library__
    All unit tests have been run successfully.

There is no need for a module, but dub by default only checks files in the 'source' folder. For such simple tests you could also run them directly with rdmd -unittest. There is an additional -main flag if you don't need a main method.

Reply via email to