...而不是为每个属性生成100个新的随机样本?
我的testsuite包含这里解释的TemplateHaskell hack [1] 测试名为prop_ *的所有函数。运行测试程序打印
=== prop_foo from tests/lala.lhs:20 ===
+++ OK, passed 100 tests.
=== prop_bar from tests/lala.lhs:28 ===
+++ OK, passed 100 tests.
看起来每个样本都要经过100个随机样本 属性。
问题:生成样本非常昂贵,检查 属性不是。所以我想有办法传递每个随机 对每个prop_ *函数进行采样,而不是创建新函数 (#properties * 100)许多样本。
有内置的东西吗?实际上,我想我需要一个 更换接头
$(forAllProperties)
在
main :: IO ()
main
= do args <- parseArgs <$> getArgs
s <- $(forAllProperties) $ quickCheckWithResult args
s ? return () $ exitFailure
where
parseArgs as
= null as ? stdArgs $ stdArgs{ maxSuccess = read $ head as }
[1] Simple haskell unit testing,和 QuickCheck exit status on failures, and cabal integration
答案 0 :(得分:0)
在这篇文章中,您可以看到如何分组测试
该用户提供了一个非常简单的使用示例 Test.Tasty.QuickCheck
使用 testProperty 和 testGroup ,您可以将每个随机样本传递给每个属性
在下一个链接中,您可以查看此软件包的 hackage