Skip to content
This repository was archived by the owner on Oct 30, 2025. It is now read-only.

SupercedeTech/hspec-slow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

‼️ This package is now redundant, as hspec added support for timing. ‼️


Click to expand the old docs

hspec-slow

Track and display slow specs in Hspec runs.

Example spec

main :: IO ()
main = do
  conf <- configure 1 -- Track specs that take longer than 1s
  timedHspec conf $ \it ->
    describe "Main" $ do
      it "should foo" $ do
        threadDelay 3000000
        1 `shouldBe` 1
      it "should bar" $ do
        threadDelay 1000
        1 `shouldBe` 1
      it "should baz" $ do
        threadDelay 4000000
        1 `shouldBe` 1

Checkout hspec slow everything to run this on your entire test suite.

Example Output

Main
  should foo
  should bar
  should baz
Slow examples:
3.002925s: should foo
4.006186s: should baz

Finished in 7.0141 seconds
3 examples, 0 failures

Parallel specs

Parallel specs are supported. They are run similarly to above:

timedHspecParallel conf $ \it -> do
  -- ...

Output:

Main
  should foo
  should bar
  should baz
Slow examples:
3.005728s: should foo
4.00143s: should baz

Finished in 4.0024 seconds
3 examples, 0 failures

hspec slow everything

Main.hs:

module Main where

import qualified Spec
import Test.Hspec.Slow
import Test.Hspec(hspec)
import ClassyPrelude

main :: IO ()
main = do
  config <- configure 2
  hspec $ timeThese config Spec.spec

Spec.hs:

{-# OPTIONS_GHC -fno-warn-implicit-prelude #-}
{-# OPTIONS_GHC -F -pgmF hspec-discover -optF --module-name=Spec #-}

About

Track slow Hspec specs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 79.3%
  • Nix 20.7%