digitalmars.D.learn - Coverage
- Sebastiaan Koppe (4/4) Feb 16 2016 I currently run dmd's coverage on my unittests.
- Leandro Motta Barros via Digitalmars-d-learn (5/9) Feb 16 2016 You probably already though of it, but: can't you create a unittest that
- Sebastiaan Koppe (8/11) Feb 16 2016 That is a viable option yes. I will probably end up doing it like
- Leandro Motta Barros via Digitalmars-d-learn (13/21) Feb 16 2016 I had one case these days in which I also had a lot of data to use in th...
- Chris Wright (17/20) Feb 16 2016 dmd -cov doesn't look specifically at unittests, so another option would...
I currently run dmd's coverage on my unittests. But now I also want to execute my program with different inputs and then merge all that coverage info from each run. Any chance there is something for that?
Feb 16 2016
You probably already though of it, but: can't you create a unittest that calls your code as many times as desired, passing different input each time? LMB On Tue, Feb 16, 2016 at 10:16 AM, Sebastiaan Koppe via Digitalmars-d-learn < digitalmars-d-learn puremagic.com> wrote:I currently run dmd's coverage on my unittests. But now I also want to execute my program with different inputs and then merge all that coverage info from each run. Any chance there is something for that?
Feb 16 2016
On Tuesday, 16 February 2016 at 12:35:38 UTC, Leandro Motta Barros wrote:You probably already though of it, but: can't you create a unittest that calls your code as many times as desired, passing different input each time?That is a viable option yes. I will probably end up doing it like that. I don't like it though. Since the input is pretty big, it would need to be kept in an external file. And I don't like my unittests reading files. Plus they aren't really unittests either. Oh well. Moving on.
Feb 16 2016
I had one case these days in which I also had a lot of data to use in the
test. I was able to put the data as very large regular D arrays, but this
increased my compilation times a lot (not to mention the time to run the
unit tests).
I decided to enclose this specific unit test (including the `import
test_data` statement) in `version ExtraUnitTests { ... }`. This way, I can
run the bulk of my unit tests very frequently without wasting time with
this special case I want to run only sometimes.
I can't say I am 100% happy with this, but it worked for me and didn't
require any additional dependency.
LMB
On Tue, Feb 16, 2016 at 4:58 PM, Sebastiaan Koppe via Digitalmars-d-learn <
digitalmars-d-learn puremagic.com> wrote:
On Tuesday, 16 February 2016 at 12:35:38 UTC, Leandro Motta Barros wrote:
You probably already though of it, but: can't you create a unittest that
calls your code as many times as desired, passing different input each time?
That is a viable option yes. I will probably end up doing it like that.
I don't like it though. Since the input is pretty big, it would need to be
kept in an external file. And I don't like my unittests reading files. Plus
they aren't really unittests either. Oh well. Moving on.
Feb 16 2016
On Tue, 16 Feb 2016 10:35:38 -0200, Leandro Motta Barros via Digitalmars-d-learn wrote:You probably already though of it, but: can't you create a unittest that calls your code as many times as desired, passing different input each time?dmd -cov doesn't look specifically at unittests, so another option would be to create, effectively, an alternate main() function just for this purpose: int realMain(string[] args) { ... } int main(string[] args) { version(AppCoverage) { realMain(["arg1", "arg2"]); realMain(["arg3", "arg4"]); return 0; } else { return realMain(args); } } This only deals with one build configuration, though, which is why it's better to be able to combine coverage reports.
Feb 16 2016









Leandro Motta Barros via Digitalmars-d-learn 