When there is a failure, show the QuickCheck output in a better format
authorNeil Mitchell <ndmitchell@gmail.com>
Mon, 10 Nov 2014 18:14:11 +0000 (18:14 +0000)
committerNeil Mitchell <ndmitchell@gmail.com>
Mon, 10 Nov 2014 18:14:11 +0000 (18:14 +0000)
tests/Test.hs

index a7d82df..b9b695b 100755 (executable)
@@ -14,16 +14,17 @@ main = do
     let count = case args of i:_ -> read i; _ -> 10000
     putStrLn $ "Testing with " ++ show count ++ " repetitions"
     let total = length tests
+    let showOutput x = show x{output=""} ++ "\n" ++ output x
     bad <- fmap catMaybes $ forM (zip [1..] tests) $ \(i,(msg,prop)) -> do
         putStrLn $ "Test " ++ show i ++ " of " ++ show total ++ ": " ++ msg
         res <- quickCheckWithResult stdArgs{chatty=False, maxSuccess=count} prop
         case res of
             Success{} -> return Nothing
-            bad -> do print bad; putStrLn "TEST FAILURE!"; return $ Just (msg,bad)
+            bad -> do putStrLn $ showOutput bad; putStrLn "TEST FAILURE!"; return $ Just (msg,bad)
     if null bad then
         putStrLn $ "Success, " ++ show total ++ " tests passed"
      else do
         putStrLn $ show (length bad) ++ " FAILURES\n"
         forM_ (zip [1..] bad) $ \(i,(a,b)) ->
-            putStrLn $ "FAILURE " ++ show i ++ ": " ++ a ++ "\n" ++ show b ++ "\n"
+            putStrLn $ "FAILURE " ++ show i ++ ": " ++ a ++ "\n" ++ showOutput b ++ "\n"
         fail $ "FAILURE, failed " ++ show (length bad) ++ " of " ++ show total ++ " tests"