On 10.08.2011 09:29, Jonathan M Davis wrote:
On Wednesday, August 10, 2011 09:11:53 simendsjo wrote:
On 08.08.2011 14:11, simendsjo wrote:
Is it possible to run unittests in libraries?
The following doesn't work:

l.d
===
module l;
import std.stdio;
int f() { return 1; } // just to make sure it's actually compiled in
unittest {
writeln("Unittest from lib");
assert(false);
}


t.d
===
import l;
import std.stdio;
void main() {
writeln(f());
}

  >  dmd -unittest -lib l
  >  dmd -unittest t l.lib
  >  t.exe

1

Anyone? Now I have to compile every source file from the library into
t.d instead of compiling in the library.

I don't know exactly what the deal with unit tests and libraries is, but it
wouldn't surprise me at all if you have to compile a module into a binary to
run its unit tests. Phobos (on Linux at least) is set up to build each module
separately to run its unit tests. I can see why you'd want to do this, so it
may be worth creating a bug report or enhancement request for it, but I have
no idea whether it's supposed to work or not.

- Jonathan M Davis

I haven't tested, but does this mean invariants and contracts is not run too? In that case I think it should be fixed (if I'm not doing anything wrong).

Reply via email to