这似乎是一个常见问题,但我却无法找到简单的答案: 在我的GHC安装中,某个软件包的哪个版本正在使用? 背景 我正在尝试学习Haskell语言,并通过阅读《Haskell实战》一书来达到这一目的。现在我已经阅读到第11章,其中介绍了QuickCheck等内容。 不幸的是,自2009年该书...
我正在使用 QuickCheck 1,并且我有以下的数据类型:data A = ... instance Arbitrary A where ... data B = ... instance Arbitrary B where ... data C = C A B 现在我想为C定义一个Arb...
RWH书籍指出,要获取ByteString支持,我需要添加:instance Arbitrary B.ByteString where arbitrary = fmap B.pack arbitrary coarbitrary = coarbitrary . B.unpac...
我正在尝试编写一个使用一个或多个函数作为输入的QuickCheck属性。为了简单起见,考虑一个检查函数复合是否等同于连续函数应用的属性,以及一个快速而粗略的测试驱动程序:import Test.QuickCheck prop_composition :: (Int -> Int) -&...
从Doctest自述中可以看到,我们可以像这样使用QuickCheck和doctest: -- | -- prop> sort xs == (sort . sort) (xs :: [Int]) 我想用多行来描述这个属性,可能像这样: -- | -- prop> sort ...
我想了解如何将一些 quickcheck 测试与 cabal 集成。这个 gist 建议 quickCheck 函数在失败时返回非零状态,但是我没有得到这种行为,所以除非我想在测试中调用 error,否则使用 cabal 的 exitcode-stdio-1.0 测试套件类型对我来说似乎无法工...
是否有HUnit或QuickCheck的扩展程序可以让类似Bamboo的持续集成系统对测试结果进行详细报告? 到目前为止,我最好的想法是将测试作为构建脚本的一部分触发,依赖于测试失败时出现非零的退出代码。这对于在测试失败时引起注意很有效,但会将构建失败与测试失败混淆,并需要查看控制台输出以确...
QuickCheck的Batch模块在版本2中被移除了(1.2.0.1仍有它)。因此,我总觉得将多个测试用例mapM_在一起有点不太正规。我是否忽略了QuickCheck 2中的后继特性?是否有一种标准的方法将独立的测试用例分组在一起?
QuickCheck 1 中的 verboseCheck 函数好像在 QuickCheck 2 中不见了(或者至少我找不到它)。是否有其他方法可以显示测试过程中使用的值?
考虑以下关于reverse和++之间分配律的测试:链接。 import Test.QuickCheck test :: [Int] -> [Int] -> Bool test xs ys = reverse (xs ++ ys) == reverse xs ++ reverse...