0

我有一个测试:

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

并且想在另一个没有自动 I/O 输出的 Haskell 程序中运行它

runTestTT test1

会创建。我试过

runTestText (putTextToHandle stderr False) test1 

但这仍然会产生输出。有没有办法(可能是另一个句柄而不是 stderr/stdout)来阻止测试创建输出?

我只想让 IO 计数在另一个地方使用它们。

4

1 回答 1

1

PutText不会产生任何输出:

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

这里foo有 type IO (Counts, Int),所以你只需要得到计数:

do (counts, _) <- foo
   ...
于 2016-06-30T17:31:48.000 回答