tasty-hspec 1.0 → 1.1
raw patch · 2 files changed
+28/−32 lines, 2 files
Files
- Test/Tasty/Hspec.hs +20/−25
- tasty-hspec.cabal +8/−7
Test/Tasty/Hspec.hs view
@@ -16,21 +16,18 @@ , module Test.Hspec ) where -import Control.Applicative ((<$>))-import Control.Monad (join)+import Control.Applicative ((<$>)) import Data.Proxy-import Data.Typeable (Typeable)-import qualified Test.Hspec as H-import qualified Test.Hspec.Core.Spec as H-import qualified Test.Hspec.Runner as H-import qualified Test.QuickCheck as QC-import qualified Test.QuickCheck.Random as QC-import qualified Test.Tasty as T-import qualified Test.Tasty.SmallCheck as TSC-import qualified Test.Tasty.Options as T-import qualified Test.Tasty.Providers as T-import qualified Test.Tasty.QuickCheck as TQC-import System.Random+import Data.Typeable (Typeable)+import qualified Test.Hspec as H+import qualified Test.Hspec.Core.Spec as H+import qualified Test.QuickCheck as QC+import qualified Test.Tasty as T+import qualified Test.Tasty.SmallCheck as TSC+import qualified Test.Tasty.Options as T+import qualified Test.Tasty.Providers as T+import qualified Test.Tasty.QuickCheck as TQC+import qualified Test.Tasty.Runners as T -- For re-export. import Test.Hspec@@ -41,16 +38,14 @@ -- | Create a <https://hackage.haskell.org/package/tasty tasty> 'T.TestTree' from an -- <https://hackage.haskell.org/package/hspec Hspec> 'H.Spec'. testSpec :: T.TestName -> H.Spec -> IO T.TestTree-testSpec name spec = H.runSpecM spec >>= fmap (T.testGroup name . join) . mapM specTreeToTestTrees+testSpec name spec = T.testGroup name . map specTreeToTestTree <$> H.runSpecM spec -specTreeToTestTrees :: H.SpecTree () -> IO [T.TestTree]-specTreeToTestTrees (H.Node name spec_trees) = do- test_trees <- join <$> mapM specTreeToTestTrees spec_trees- return [T.testGroup name test_trees]-specTreeToTestTrees (H.NodeWithCleanup cleanup spec_trees) = do- cleanup ()- join <$> mapM specTreeToTestTrees spec_trees-specTreeToTestTrees (H.Leaf item) = return [T.singleTest (H.itemRequirement item) (Item item)]+specTreeToTestTree :: H.SpecTree () -> T.TestTree+specTreeToTestTree (H.Node name spec_trees) = T.testGroup name (map specTreeToTestTree spec_trees)+specTreeToTestTree (H.NodeWithCleanup cleanup spec_trees) =+ let test_tree = specTreeToTestTree (H.Node "(unnamed)" spec_trees)+ in T.WithResource (T.ResourceSpec (return ()) cleanup) (const test_tree)+specTreeToTestTree (H.Leaf item) = T.singleTest (H.itemRequirement item) (Item item) hspecResultToTastyResult :: H.Result -> T.Result hspecResultToTastyResult H.Success = T.testPassed ""@@ -61,8 +56,8 @@ deriving Typeable instance T.IsTest Item where- run opts (Item (H.Item _ _ _ example)) progress =- hspecResultToTastyResult <$> example params ($ ()) hprogress+ run opts (Item (H.Item _ _ _ ex)) progress =+ hspecResultToTastyResult <$> ex params ($ ()) hprogress where params :: H.Params params = H.Params
tasty-hspec.cabal view
@@ -1,5 +1,5 @@ name: tasty-hspec-version: 1.0+version: 1.1 synopsis: Hspec support for the Tasty test framework. description: Hspec support for the Tasty test framework. @@ -16,11 +16,12 @@ exposed-modules: Test.Tasty.Hspec other-extensions: DeriveDataTypeable build-depends: base ==4.*- , hspec >=2 && <3- , hspec-core >=2 && <3- , QuickCheck >=2.7 && <3- , tasty >= 0.8 && <1.0- , tasty-smallcheck >=0.1 && <0.9- , tasty-quickcheck >=0.3 && <0.9+ , hspec >=2 && <3+ , hspec-core >=2 && <3+ , QuickCheck >=2.7 && <3+ , tasty >=0.8 && <1.0+ , tasty-smallcheck >=0.1 && <0.9+ , tasty-quickcheck >=0.3 && <0.9 , random default-language: Haskell2010+ ghc-options: -Wall