test-framework-doctest-0.1: Test.Framework wrapper for DocTest

Test.Framework.Providers.DocTest

Description

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.

Synopsis

Documentation

docTestSource

Arguments

:: [FilePath]

Paths to root modules

-> [String]

Options passed to ghci

-> IO Test 

Note that docTest can be called only once per process execution

You only need to give paths to modules that are not imported from any other module