2016-08-11 3 views
0

최근 HUnit 테스트 프레임 워크를 사용하여 haskell에서 테스트를 실행했습니다.PutText in haskell HUnit

나는 첫 번째 인수로 PutText st를 취하는이 함수 PutText와 runTestText를 보았습니다.

그러나이 방법을 사용하는 방법을 잘 모르겠으며이를 사용하는 방법을 이해하는 데 도움이 필요하십니까?

답변

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

사용하려고 할 때마다 항상 false가됩니다. 왜, 어떤 아이디어가 확실하지 않은 Im? – Zubair