No-nonsense test runner
It's just a test runner, how can it not be simple?
Add it as a dependency and run dub test
.
Running tests in parallel is a pretty common feature most of the test runners have.
Silly brings you this as well as lightning fast compilation times.
You don't have to change a single line of your code (as long as it meets requirements).
Silly is just an another dependency. No more, no less.
To be able to use silly in your project it has to satisfy the following requirements:
main
function when built in unittest
mode (conditional compilation will help you here)targetType: executable
in unittest
configuration in dub.json/dub.sdl. See #12 for more infoIf your projects meets requirements, add the following to your dub.json
or dub.json
(depending on which one you're using)
{
<...>
"dependencies": {
<...>
"silly": "*"
}
}
<...>
dependency "silly" version="*"
As soon as you added silly to dependencies of your project, you can run tests with dub test
There are some command-line options you can use to change silly's behaviour
<n>
<n>
0
to auto-detect (default)<regexp>
<regexp>
<regexp>
<regexp>
With --include
and --exclude
options it's possible to control which tests will be run. These options take regular expression in std.regex' format
--include
option will tell silly to run tests which match specified regular expression. Other tests will be skipped
--exclude
option will tell silly to skip tests which match specified regular expression. Other tests will be run
<full test name (example.one.__unittest_L1_C1)> <pretty name | __unittest_L\d+_C\d+>
against specified regex. Because of that ^
assertions won't match beginning of the test name but beginning of the module name. Use .*\s
to skip module part.