www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - dub - Add dependency for only "dub test"

reply Ben Goodwyn <bengoodwyn me.com> writes:
I like to use fluent-asserts 
(https://github.com/gedaiu/fluent-asserts), but I seem to be 
missing something in how to only add that as a dependency for the 
unittest builds.

The documentation encourages overwriting the unittest 
configuration, but when I do this it changes a large number of 
things including removing the normal release and debug builds and 
trying to build as a shared library instead of an application.

I believe I have a dub.json configuration question that boils 
down to:
* How do I add a dependency when running "dub test" without 
changing all of the default configurations?
* Do I have to completely define all of the configurations that 
dub provides by default once I decide to make a custom 
configuration?
* If so, how can I see what the boilerplate would be for all of 
those configurations to have a sane starting point?

What fluent asserts recommends with I believe a lot of necessary 
stuff omitted in the "..."'s:
     ...
     "configurations": [
         ...
         {
             "name": "unittest",
             "dependencies": {
                 "fluent-asserts": "~>0.9.0",
                 ...
             }
         },
         ...
     ]
     ...

Using the dlanguage/ldc:1.9.0 Docker image.
Jun 27 2018
parent Ben Goodwyn <bengoodwyn me.com> writes:
On Wednesday, 27 June 2018 at 16:53:49 UTC, Ben Goodwyn wrote:
 I like to use fluent-asserts 
 (https://github.com/gedaiu/fluent-asserts), but I seem to be 
 missing something in how to only add that as a dependency for 
 the unittest builds.

 The documentation encourages overwriting the unittest 
 configuration, but when I do this it changes a large number of 
 things including removing the normal release and debug builds 
 and trying to build as a shared library instead of an 
 application.

 I believe I have a dub.json configuration question that boils 
 down to:
 * How do I add a dependency when running "dub test" without 
 changing all of the default configurations?
 * Do I have to completely define all of the configurations that 
 dub provides by default once I decide to make a custom 
 configuration?
 * If so, how can I see what the boilerplate would be for all of 
 those configurations to have a sane starting point?

 What fluent asserts recommends with I believe a lot of 
 necessary stuff omitted in the "..."'s:
     ...
     "configurations": [
         ...
         {
             "name": "unittest",
             "dependencies": {
                 "fluent-asserts": "~>0.9.0",
                 ...
             }
         },
         ...
     ]
     ...

 Using the dlanguage/ldc:1.9.0 Docker image.
I found a pattern that works. It seems what was missing was having the first configuration so that the default build works as an exe and then excluding the file with the main() function in the unittest configuration. "configurations": [ { "name": "executable" }, { "name": "unittest", "excludedSourceFiles": [ "source/app.d" ], "sourcePaths": [ "source", "test" ], "importPaths": [ "source", "test" ], "dependencies": { "fluent-asserts": "~>0.12.0" } } ]
Jun 27 2018