2016-08-11 49 views
0

我最近一直在使用HUnit測試框架在haskell中運行單元 測試。PutText in haskell HUnit

我遇到了這個函數PutText和runTestText,它把PutText st作爲它的第一個參數 。

但是我不知道如何使用這個,並想了解如何使用它的一些幫助?

回答

1

PutText值允許您自定義報告運行測試生成的消息的方式。

創建一個簡單的方法是使用putTextToHandle stdout True將消息輸出到標準輸出。參數True意味着也發出進度信息。

PutText協議允許您維護狀態。這是一個跟蹤發送消息數量的例子。該狀態的最終值 也由runTestText作爲返回元組的第二個組件 返回。

reportMsg :: String -> Bool -> Int -> IO Int 
reportMsg message isProgress count = do 
    putStrLn $ "#" ++ show (count+1) ++ ": " ++ message 
    return (count+1) 

myPutText = PutText reportMsg 0 :: PutText Int 

然後你就可以使用它像這樣:

(testCounts, msgCount) <- runTestText myPutText tests 
putStrLn $ "Messages emitted: " ++ show msgCount 

這裏testCounts是被運行/通過測試次數的計數/失敗/等msgCount是返回的值PutText函數的最後一次調用。

+0

謝謝,我想知道bool參數有什麼用途? – Zubair

+0

它表示消息是否爲「進度」消息 - 我假設報告當前已完成的測試數量。 – ErikR

+0

每當我嘗試使用它,它總是變成假。我不知道爲什麼,有什麼想法? – Zubair