selective tests
IGotD-
nise at nise.com
Sat Oct 12 13:50:46 UTC 2019
On Saturday, 12 October 2019 at 09:52:59 UTC, Jonathan M Davis
wrote:
> On Saturday, October 12, 2019 2:18:02 AM MDT Martin Brezeln via
> Digitalmars- d-learn wrote:
>> Is it possible to execute only certain modules or tests which
>> are defined in certain directories?
>>
>> For example, in go one can run "go test ./XYZ" to execute ony
>> tests in ./XYZ or "go test ./..." to execute all the tests in
>> and under the current directory.
>>
>> Please don't get me wrong, i do not wish to start a discussion
>> about doing things the "go way". I am asking if there is a way
>> to
>> achieve a similar result with dub (or maybe without dub?
>> 🤔)
>
> The default test runner does not support running only some of
> the tests. It simply runs all of the unittest blocks in the
> binary prior to running main, and tests only get skipped when
> they're either not compiled in or when a previous unittest
> block in that module failed.
>
> You could set up your build so that you had targets which only
> compiled specific directories so that the only unit tests that
> were run were the ones in those directories, but I don't think
> that it's possible to do anything like that with dub.
> Certainly, if it is, it would be a royal pain to set up.
>
> Really, if you want to control which tests get run instead of
> simply always running them all, then you'll need to use an
> alternate test runner which supports that. There are a few test
> runners available on code.dlang.org, and I expect that at least
> one of them supports that (probably multiple do).
>
> - Jonathan M Davis
This would be helpful. About all C++ unit test frameworks have
named test and you can select a specific one or several in the
command line. Very useful when you work on a specific test and
other tests take some time to finish.
having
unittest OptionalName
{
...
}
would actually help a lot. I don't think this would be very
difficult to implement and wouldn't break anything.
More information about the Digitalmars-d-learn
mailing list