作为quickCheck的粉丝,我有很多
prop_something_something = ...
我的整个计划。
为方便起见,为了方便地运行所有这些,我定义了
runchecks = do
quickCheck prop_something_something
quickCheck prop_something_different
但有一种很好的方式来生成runchecks
吗?
TL; DR:我想在文件中轻松运行所有quickChecks。我想一种方法是使用test_或类似的东西为可运行的测试添加前缀,但这可能太过于hacky。
答案 0 :(得分:8)
额外注意事项:此功能在QuickCheck 2中也是开箱即用的,请参阅功能quickCheckAll
,该功能需要导入Test.QuickCheck.All
以及TemplateHaskell
。 quickCheckAll
将测试模块中名称以prop_
开头的所有函数。
答案 1 :(得分:7)
您可以使用test-framework-th
包执行此操作。只是做:
import Test.Framework.TH
import Test.Framework.Providers.QuickCheck2
runchecks = $(defaultMainGenerator)
这将使用test-framework
运行测试的方式,即您将获得比通过简单地一个接一个地运行测试所获得的信息略多的信息,这通常是一件好事。
您显然需要TemplateHaskell
才能启用此功能;将Default-extensions: TemplateHaskell
添加到您的Cabal文件,或将{-# LANGUAGE TemplateHaskell #-}
添加到文件的顶部。