silly is released - new test runner for the D programming language

Anton Fediushin fediushin.anton at yandex.com
Mon Aug 13 04:13:46 UTC 2018


On Sunday, 12 August 2018 at 21:33:21 UTC, Dechcaudron wrote:
> On Sunday, 12 August 2018 at 15:07:04 UTC, Anton Fediushin 
> wrote:
>> Silly is a brand-new test runner with simplicity in mind. It's 
>> developed to be as simple as possible and contain no useless 
>> features. Another important goal is to provide flexible tool 
>> which can be easily integrated into existing environments.
>
> I like the "add as dependency and you're done" thing 
> (unfortunately you have to apply conditional compilation to 
> main().
>
> But quick question (just playing the devil's advocate). Why use 
> this library instead of, say, unit-threaded?

Problem with unit-threaded and similar tools is that they are too 
complicated for no particular reason. Hacking into dub.json to 
add some scripting into it is not something everybody wants to 
waste their time on.

Trial might be the first test runner to solve this problem 
because it just runs as a stand-alone tool and uses dub 
internally, but it takes forever to compile. It uses too many 
compile-time features which results in high RAM usage and slow 
compilation times.

Another thing, these tools are trying to be everything people 
might need adding all kinds of features nobody really uses. For 
example, assertions in unit-threaded and a lot of different 
reporters in trial.

These tools also advertise usage of built-in `unittest` blocks 
for integration testing. I think it's just wrong because 
`unittest`s are obviously meant for unit testing and slapping 
integration tests on with some duct tape and zip ties is not a 
good solution. Integration testing needs it's own tool and it's 
quite possible that I'll end up writing one soon or later.

Silly is just my attempt to improve current state of D's 
ecosystem where programmers don't use advanced test runners, 
well, because it doesn't worth it for small projects.


More information about the Digitalmars-d-announce mailing list