This type is a String which identifies a test-suite in your cabal-file; the one you'll be running doctest from.
Modulecabal-doctest-1.0.13Haskell2010
Distribution.Extra.Doctest
See cabal-doctest README for full-fledged recipes & caveats.
The provided generateBuildModule generates a module named Build_doctests.
That module exports just enough compiler flags, so that doctest could be simply
module Main where
import Build_doctests (flags, pkgs, module_sources)
import Test.Doctest (doctest)
main :: IO ()
main = doctest args
where
args = flags ++ pkgs ++ module_sources
As this module-generation is done at build-time, generateBuildModule must be
invoked from Setup.hs, which also necessarily means build-type: Custom.
Setup.hs can use libraries, but they must be declared as dependencies in the
custom-setup stanza of the user's cabal file. To use cabal-doctest then:
custom-setup
setup-depends:
base >= 4 && <5,
cabal-doctest >= 1 && <1.1
Finally, simple shortcuts are provided to avoid an explicit dependency on Cabal
from setup-depends: defaultMainWithDoctests and defaultMainAutoconfWithDoctests.
- 1 type
- 5 values
- Packagecabal-doctest-1.0.13
- Exports6
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceDoctest.hs
A default Setup.hs main with doctests:
import Distribution.Extra.Doctest
(defaultMainWithDoctests)
main :: IO ()
main = defaultMainWithDoctests "doctests"
The argument "doctests" identifies a test-suite in your cabal-file; the
one you'll run doctest from. If you have test-suite my-test, you should
invoke defaultMainWithDoctests "my-test" in Setup.hs.
This argument does not change the generated module name imported from the
test-driver's Main -- that one always remains import Build_doctests.
Like defaultMainWithDoctests, but for packages with build-type: Configure.
Compose generateBuildModule into Cabal's UserHooks (prepending the action).
This is exported for advanced custom Setup-s.
simpleUserHooks with generateBuildModule already wired-in.
Generate a build module for the test suite.
import Distribution.Simple
(defaultMainWithHooks, UserHooks(..), simpleUserHooks)
import Distribution.Extra.Doctest
(generateBuildModule)
main :: IO ()
main = defaultMainWithHooks simpleUserHooks
{ buildHook = pkg lbi hooks flags -> do
generateBuildModule "doctests" flags pkg lbi
buildHook simpleUserHooks pkg lbi hooks flags
}