Named unittests
Idan Arye via Digitalmars-d
digitalmars-d at puremagic.com
Tue Mar 31 14:14:07 PDT 2015
On Tuesday, 31 March 2015 at 21:05:40 UTC, Xavier Bigand wrote:
> Le 31/03/2015 20:21, Andrei Alexandrescu a écrit :
>> On 3/31/15 7:45 AM, Idan Arye wrote:
>>> On Tuesday, 31 March 2015 at 13:34:24 UTC, Dicebot wrote:
>>>> On Tuesday, 31 March 2015 at 10:25:57 UTC, Idan Arye wrote:
>>>>> I understand the preference to librarize as much as
>>>>> possible, but I
>>>>> don't think the desire to sacrifice every possible bit of
>>>>> convenience
>>>>> to avoid the tiniest changes to the language is always
>>>>> beneficial. I
>>>>> don't say that implementing everything inside the compiler
>>>>> is good
>>>>> either though, but in many cases some slight changes to the
>>>>> language
>>>>> can make the library solution so much more simple and
>>>>> elegant.
>>>>>
>>>>> In this case, allowing to name a unittest should be a very
>>>>> simple
>>>>> language change that'll make any library implementation of
>>>>> the rest
>>>>> of the feature more elegant to use, simpler to implement,
>>>>> and more
>>>>> consistent with alternative library implementations.
>>>>
>>>> It isn't simple at all. Name is just one of many meta-values
>>>> you
>>>> commonly want to attach to unittest block. Some others:
>>>> description,
>>>> dependency, parallelization, benchmark tag, I/O indicator.
>>>> It is
>>>> simply impossible to foresee it all in a language feature -
>>>> but it is
>>>> exactly kind of data UDA are designed for. All we need is to
>>>> enhance/fix the language to actually make using of that
>>>> information
>>>> convenient.
>>>
>>> But unittests already have
>>> names(http://dpaste.dzfl.pl/b15e94000f15), so
>>> the only required change is to allow the user to specify that
>>> name. This
>>> should be much simpler than adding entirely new fields.
>>
>> Interesting point! -- Andrei
> It will be nice to have named unittest.
>
> And better if IDEs will be able to retrieve those names, to
> allow replay by name, displaying results by names,...
Building by unittest name! Imagine - instead of placing temporary
code in `main` to develop a new feature or fix a bug, you put in
a named unittest and tell your IDE/build-system to only build
that unittest(and whatever code needed for it to run). You
`writeln` stuff to the console, and when you get some changes to
output what you want you change the `writeln`s to `assert`s and
proceed to work on the next step. When you are done, all you have
to do is tidy it up a bit and BAM - without any special effort
you get a unittest that tests that feature/bug you just worked on.
More information about the Digitalmars-d
mailing list