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 as a plain `m` action and must call it; teardown placed after that
call runs whatever the test's result.
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 the resource type and wrap the test action,
which the wrapper receives as a plain `m` action; teardown placed after
calling it runs whatever the test's result.
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