module Test.Chell.HUnit ( hunit ) where import qualified Test.Chell as Chell import Test.HUnit.Lang (Assertion, performTestCase) -- | Convert a sequence of HUnit assertions (embedded in IO) to a Chell -- 'Chell.Test'. -- -- @ --import Test.Chell --import Test.Chell.HUnit --import Test.HUnit -- --test_Addition :: Test --test_addition = hunit \"addition\" $ do -- 1 + 2 \@?= 3 -- 2 + 3 \@?= 5 -- @ hunit :: String -> Assertion -> Chell.Test hunit name io = Chell.test name chell_io where chell_io _ = do result <- performTestCase io return $ case result of Nothing -> Chell.TestPassed [] Just err -> parseError err parseError (True, msg) = Chell.TestFailed [] [Chell.failure { Chell.failureMessage = msg }] parseError (False, msg) = Chell.TestAborted [] msg