dub: standard project: how to build the unittest (the thing `dub test` runs)

Andre Pany andre at s-e-a-p.de
Sat Dec 12 12:18:47 UTC 2020


On Saturday, 12 December 2020 at 11:13:45 UTC, Tobias Pankrath 
wrote:
> Whenever I come back to some D, I seem to be stumbling over 
> dub. Somehow dub and I don't align:
>
> $ dub init dubtest && cd dubtest
> $ dub test
> -> creates executable `dubtest` (saying Falling back to "dub -b 
> unittest".)
>
> $ touch source/lib.d
> dub test
> -> creates executable dubtest-test-library
>
> Question is: How do I build the `dubtest-test-library` without 
> running the tests?
>
>> If no explicit configuration is given, an existing "unittest" 
>> configuration will be preferred for testing. If none exists, 
>> the first library type configuration will be used, and if that 
>> doesn't exist either, the first executable configuration is 
>> chosen.
>
> I've tried
>
> $ dub test -b unittest -c library
>
> but that re-creates ./dubtest not ./dubtest-test-library.

In any case you should have configurations in your dub json. For 
the first configuration, the name does not matter, it is used by 
default for command "dub" or "dub build", here you set targetType 
library. The second configuration you name unittest, you set 
targetType executable and you also have to set attribute 
mainSourceFile. This configuration is used automatically by 
command "dub test".

Kind regards
Andre


More information about the Digitalmars-d-learn mailing list