我希望能够获取包含以下声明的文件:
test_1 = assert $ 1 == 1
test_2 = assert $ 2 == 1
并生成一个基本的运行函数,如
main = runTests [test_1, test2]
目标是获得像Python一样的东西。
我可以使用模板Haskell吗?我找不到很多关于它的文档(Wiki中有许多断开的链接)。
答案 0 :(得分:4)
还有另外一种方法,你不必使用模板haskell。 haskell-src-exts可以解析Haskell,你可以从中提取。
或者如果您的目的是实用的,您可以像quickcheck
那样做一个简单的解析,即在第0列中查找以prop_
开头的标识符。这是一个非常合适的解决方案实际工作,虽然理论上可能不满意。
答案 1 :(得分:4)
您可能需要查看test-framework系列软件包。特别是,test-framework-th包提供了模板Haskell函数defaultMainGenerator
,它完全符合您对QuickCheck和HUnit测试的要求,只要您遵循使用{{1}前缀HUnit测试用例的惯例。使用case_
和。{/ p>的QuickCheck属性
prop_