在QuickCheck中,有没有办法抑制
(0 tests) (1 test) (2 tests) (3 tests) (4 tests) ...
输出而不会抑制摘要
+++ OK, passed 500 tests.
输出
我已尝试设置chatty = False
,但这会抑制两者。
答案 0 :(得分:4)
由于您只对摘要输出感兴趣,因此可以将quickCheckWithResult
与chatty = False
一起使用:
silentQuickCheck :: Testable prop => prop -> IO ()
silentQuickCheck p = quickCheckWithResult stdArgs { chatty = False } p >>= putStr . output
示例:
main = do
putStrLn "Even: "
silentQuickCheck even
putStrLn "Odd: "
silentQuickCheck odd
putStrLn "ID Eq: "
silentQuickCheck $ \n -> n == n
输出:
Even:
*** Failed! Falsifiable (after 6 tests):
3
Odd:
*** Failed! Falsifiable (after 1 test):
0
ID Eq:
+++ OK, passed 100 tests.
但是,在\b
(ASCII退格)上向后移动光标的终端/输出上,测试计数((xx tests)
)会反复重写,因此只有在输出时才需要这样做/终端在这个意义上不承认\b
。