Test.HUnit
提供了一个大红色按钮来运行测试:
runTestTT :: Test -> IO Counts
由于需要构建大型测试套件,Test
因此它不是单个测试,而是实际上是带有Assertion
叶子的标记玫瑰树:
data Test
= TestCase Assertion | TestList [Test] | TestLabel String Test
-- Defined in `Test.HUnit.Base'
它不是抽象的,因此可以对其进行处理。一种特别有用的处理是通过路径提取子树:
byPath = flip $ foldl f where
f (TestList l) = (l !!)
f (TestLabel _ t) = const t
f t = const t
因此,例如,我可以运行单个子套件runTestTT $ byPath [1] tests
或由测试路径标识的特定测试runTestTT $ byPath [1,7,3] tests
,而不是等待整个套件。
国产工具的一个缺点是没有保留(缩短)测试路径。
Hackage 上是否已经有这样的处理辅助工具?