2016-06-30 9 views
0

У меня есть тест:Run HUnit без выхода

test1 = TestCase (assertEqual "Bla" 2 (add1 1)) 

И хотите, чтобы запустить его в другой программе Haskell без автоматического ввода/вывода O, который

runTestTT test1 

бы создать. Я пробовал

runTestText (putTextToHandle stderr False) test1 

но это все равно создаст выход. Есть ли способ (может быть, другая ручка вместо stderr/stdout), чтобы остановить тест от создания вывода?

Я хотел бы просто получить счетчики ввода-вывода, чтобы использовать их в другом месте.

ответ

1

Это PutText не производит никакой продукции:

foo = runTestText (PutText go 0) test1 
    where go :: String -> Bool -> Int -> IO Int 
     go s b i = return 0 

Здесь foo имеет тип IO (Counts, Int), так что вы получите отсчеты только с:

do (counts, _) <- foo 
    ...