before : Monad m => m () -> Spec m a () -> Spec m a () Run an action before each test in the group.
Visibility: exportafter : Monad m => m () -> Spec m a () -> Spec m a () Run an action after each test in the group.
Visibility: exportaround : (m (TestResult ()) -> m (TestResult ())) -> Spec m a () -> Spec m a () Wrap each test with a setup/teardown action. The wrapper receives the
test action and must call it.
Visibility: exportbeforeAll : (Synchronized m, HasIO m) => m () -> Spec m a () -> Spec m a () Run an action once before the first test in the group.
Subsequent tests reuse the cached result.
Visibility: exportafterAll : m () -> Spec m a () -> Spec m a () Run an action once after all tests in the group have finished.
Visibility: exportbeforeWith : Monad m => (outer -> m inner) -> Spec m inner () -> Spec m outer () Transform the resource type. Runs `f` before each test to produce the
inner resource from the outer one.
Visibility: exportaroundWith : ((inner -> m (TestResult ())) -> outer -> m (TestResult ())) -> Spec m inner () -> Spec m outer () Most general hook: transform both the resource type and wrap the test action.
Visibility: exportafterWith : Monad m => (a -> m ()) -> Spec m a () -> Spec m a () Run a cleanup action that has access to the resource after each test.
Visibility: exportbeforeAllWith : (Synchronized m, HasIO m) => (outer -> m inner) -> Spec m inner () -> Spec m outer () Transform the resource type once for the entire group. Runs `f` once on
the first test and caches the result for subsequent tests.
Visibility: exportprovide : Monad m => m a -> Spec m a () -> Spec m () () Convenience: produce a resource from nothing and thread it into tests.
Visibility: export