Wrapper for running DocTests with Test.Framework
First we get the doctests wrapped in Test
using
docTest
. The first argument to docTest
should the root modules
i.e., the modules that are not imported by other modules.
>>>
doctests <- docTest ["tests/Test.hs"] ["-itests"]
After getting the doctests we can execute the doctests using the
defaultMain
or defaultMainWithOpts
functions.
>>>
defaultMainWithOpts [doctests] $ defaultOptions { ropt_plain_output = Just True }
DocTest: tests/Test.hs: print "abc": [Failed] Failed: expression `print "abc"' expected: ["\"fail\""] but got: ["\"abc\""] print bar: [OK] <BLANKLINE> Test Cases Total Passed 1 1 Failed 1 1 Total 2 2 *** Exception: ExitFailure 1
Above we used defaultMainWithOpts
for running the tests so that we
can specify that we want plain output instead of colored
output. Colored output looks like line noise in DocTests.
The *** Exception: ExitFailure 1
is caused by
defaultMainWithOptions
trying to exit after finishing with tests.