unittests not being run

Seb via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jul 16 13:08:48 PDT 2016


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.



More information about the Digitalmars-d-learn mailing list