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上是否有这样的处理助手工具?
答案 0 :(得分:2)
最接近您需求的似乎是通过HUnit,Quickcheck和其他测试抽象的库和程序,并且拥有自己的测试名称分组和管理基础结构,例如: test-framework。它为您提供了一个main
函数,它接受命令行参数,包括允许您指定要运行的测试或测试组的函数(通过对名称进行通配)。