gpt4 book ai didi

haskell - QuickCheck 如何测试每个 sample 的所有属性

转载 作者:行者123 更新时间:2023-12-01 06:06:32 25 4
gpt4 key购买 nike

...而不是为每个属性生成 100 个新的随机样本?

我的测试套件包含此处 [1] 解释的 TemplateHaskell hack
测试所有名为 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

最佳答案

在这篇文章中,您可以看到如何对测试进行分组

Stackoverflow post

该用户提供了一个非常简单的使用示例 Test.Tasty.QuickCheck

使用 testProperty 和 testGroup 您可以将每个随机样本传递给每个属性

在下一个链接中,您可以检查此软件包的 hackage

Test.Tasty.QuickCheck

关于haskell - QuickCheck 如何测试每个 sample 的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38233443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com