Named unittests
deadalnix via Digitalmars-d
digitalmars-d at puremagic.com
Tue Mar 31 20:42:08 PDT 2015
On Tuesday, 31 March 2015 at 23:29:28 UTC, Martin Nowak wrote:
> On 04/01/2015 12:58 AM, deadalnix wrote:
>> So now we are going to change the language for this ?
>>
>> There is a natural name for unitests, the name of the module.
>> We have
>> way to break module into pieces in a backward compatible
>> manner now, so
>> it's all good.
>
> Are you saying one should split off unittests into submodules?
>
No necessarily.
Typically, in most test framework, you have a class, and various
method, each of them testing various aspect of what you want to
test.
I see the class here as the module, and each of the method as a
unitest block.
> Or are you saying
> https://github.com/D-Programming-Language/druntime/blob/3656ba9469a60b4b23bb4a3cd95812b4f410b8a1/src/test_runner.d
> is enough for your needs?
>
> I think having multiple tests per module makes sense, e.g.
> because it's
> better to parallelize the tests.
>
See my previous comment, that is not needed. In fact i also think
having several unitest blocks is useful.
>> We may want to add various annotation to a test, and we have
>> UDA for that.
>
> Sure use a UDA, I don't care. It seems important though, that
> the
> compiler recognizes it and emits it as metadata to the
> ModuleInfo.
> And if you need some compiler magic anyhow, a UDA just looks
> redundant.
>
How I see it, it should be possible for a user to specify a test
runner template. This test runner template can do compile time
reflection and format its output the way to wants.
We must not bake all required attribute we need to associate a
test in the language. What if we want to associate the test with
a team name, or give it a name, or give an id that my tools uses
to check for tests, or whatever.
Every user will want to add various metadata, and these will
vary. Every users will want various output, and these will vary.
It should be possible to have a test runner that use template and
compile time reflection to make sense of the unitest block. Yes,
there is a bit of compiler magic involved, but nothing terribly
fancy.
> You mean this?
> http://dlang.org/phobos/core_runtime.html#.Runtime.moduleUnitTester
We need template to use compile time reflection.
More information about the Digitalmars-d
mailing list