hedgehog-1.0.2: Release with confidence.
Safe HaskellNone
LanguageHaskell98

Hedgehog.Internal.Runner

Synopsis

Running Individual Properties

check :: MonadIO m => Property -> m Bool Source #

Check a property.

recheck :: MonadIO m => Size -> Seed -> Property -> m () Source #

Check a property using a specific size and seed.

Running Groups of Properties

data RunnerConfig Source #

Configuration for a property test run.

Constructors

RunnerConfig 

Fields

  • runnerWorkers :: !(Maybe WorkerCount)

    The number of property tests to run concurrently. Nothing means use one worker per processor.

  • runnerColor :: !(Maybe UseColor)

    Whether to use colored output or not. Nothing means detect from the environment.

  • runnerVerbosity :: !(Maybe Verbosity)

    How verbose to be in the runner output. Nothing means detect from the environment.

Instances

Instances details
Eq RunnerConfig Source # 
Instance details

Defined in Hedgehog.Internal.Runner

Methods

(==) :: RunnerConfig -> RunnerConfig -> Bool

(/=) :: RunnerConfig -> RunnerConfig -> Bool

Ord RunnerConfig Source # 
Instance details

Defined in Hedgehog.Internal.Runner

Show RunnerConfig Source # 
Instance details

Defined in Hedgehog.Internal.Runner

Methods

showsPrec :: Int -> RunnerConfig -> ShowS

show :: RunnerConfig -> String

showList :: [RunnerConfig] -> ShowS

Lift RunnerConfig Source # 
Instance details

Defined in Hedgehog.Internal.Runner

Methods

lift :: RunnerConfig -> Q Exp

checkParallel :: MonadIO m => Group -> m Bool Source #

Check a group of properties in parallel.

Warning: although this check function runs tests faster than checkSequential, it should be noted that it may cause problems with properties that are not self-contained. For example, if you have a group of tests which all use the same database table, you may find that they interfere with each other when being run in parallel.

Using Template Haskell for property discovery:

tests :: IO Bool
tests =
  checkParallel $$(discover)

With manually specified properties:

tests :: IO Bool
tests =
  checkParallel $ Group "Test.Example" [
      ("prop_reverse", prop_reverse)
    ]

checkSequential :: MonadIO m => Group -> m Bool Source #

Check a group of properties sequentially.

Using Template Haskell for property discovery:

tests :: IO Bool
tests =
  checkSequential $$(discover)

With manually specified properties:

tests :: IO Bool
tests =
  checkSequential $ Group "Test.Example" [
      ("prop_reverse", prop_reverse)
    ]

checkGroup :: MonadIO m => RunnerConfig -> Group -> m Bool Source #

Check a group of properties using the specified runner config.

Internal

checkReport :: forall m. MonadIO m => MonadCatch m => PropertyConfig -> Size -> Seed -> PropertyT m () -> (Report Progress -> m ()) -> m (Report Result) Source #

checkRegion :: MonadIO m => Region -> UseColor -> Maybe PropertyName -> Size -> Seed -> Property -> m (Report Result) Source #

checkNamed :: MonadIO m => Region -> UseColor -> Maybe PropertyName -> Property -> m (Report Result) Source #