Skip to content

BinderDavid/tasty-coverage

Repository files navigation

tasty-coverage

A tasty ingredient which allows to generate per-test coverage data.

If the GHC compiler is passed the -fhpc flag, then the generated code is instrumented in order to also emit information about the executed parts of the sourcecode at runtime. This coverage information is written to a file with the suffix .tix. For testsuites it is sometimes more useful to have the coverage information for each test individually. This information can be collected using the methods from the Trace.Hpc.Reflect module from the hpc library. The tasty-coverage package provides a simple ingredient for the tasty testsuite driver which allows to run the testsuite with the --report-coverage option. When this option is passed, one .tix file is generated for each individual test. Passing tests have the file suffix PASSED.tix, whereas failing tests have the suffix FAILED.tix.

> cabal run tasty-coverage-test -- --help
Mmm... tasty test suite

Usage: tasty-coverage-test [-p|--pattern PATTERN] [-t|--timeout DURATION] 
                           [--report-coverage]

Available options:
  -h,--help                Show this help text
  -p,--pattern PATTERN     Select only tests which satisfy a pattern or awk
                           expression
  -t,--timeout DURATION    Timeout for individual tests (suffixes: ms,s,m,h;
                           default: s)
  --report-coverage        Generate per-test coverage data

> cabal run tasty-coverage-test -- --report-coverage
Wrote coverage file: tix/UnitTests.testOne.PASSED.tix
Wrote coverage file: tix/UnitTests.testTwo.PASSED.tix
Wrote coverage file: tix/UnitTests.testThree.FAILED.tix

About

Generate per-test coverage reports for tasty testsuites

Resources

License

Stars

Watchers

Forks