On Friday, 17 April 2020 at 16:56:57 UTC, Russel Winder wrote:
Hi,
Thinking of trying to do the next project in D rather than
Rust, but…
Rust has built in unit testing on a module basis. D has this so
no problem.
Rust allows for integration tests in the tests directory of a
project. These are automatically build and run along with all
unit tests as part of "cargo test".
Does D have any integrated support for integration tests in the
way
Rust does?
D does not recognise any special testing directories afaik. But
you'll get the same affect as in rust if you have your
integration tests in a file that is not the modules you are
testing and run it after building the main library - or during
even.
With Dub it's quite easy to set up, you can see the optional
package as an example [0]. There's a tests directory that does
not have access to the optional package's internals. There's also
a unittest-compat configuration in dub.json that tests the
package alongside vibed (another d package)
For auto mocking, the only thing I've see that provides some
functionality is the unit-threaded package. But I've never tried
it.
[0]: https://github.com/aliak00/optional