【问题标题】:How to print the test seed in Haskell's test-framework?如何在 Haskell 的测试框架中打印测试种子?
【发布时间】:2016-02-09 15:44:02
【问题描述】:

test-framework docs 声明它支持“报告在 QuickCheck 运行失败时使用的种子,因此您可以在必要时重现失败。”但是默认输出不显示这个,我找不到任何可以打开它的命令行选项。

有没有办法在 test-framework 中执行此操作,还是我必须从 QuickCheck 手动打印 usedSeed

【问题讨论】:

标签: haskell quickcheck test-framework


【解决方案1】:

因为我也对这个问题的答案感兴趣,所以我想到了,搜索的结果是测试的详细输出。这让我在 hoogle 上得到了答案: https://www.haskell.org/hoogle/?hoogle=verboseCheck

所以不要使用quickCheck :: Testable prop => prop -> IO ()

main = quickCheck propertyToTest

只给出以下输出:

+++ 好的,通过了 100 次测试。

使用verboseCheck :: Testable prop => prop -> IO ()

main = verboseCheck propertyToTest

为每个测试提供类似此示例的详细输出(通过:100 次):

通过:
[-83,-52,7,-3,-92,-52,21,18,48,-72,-93,74,-30,-1,88,57,39,-20,-92, -98,-85,8,-92,22,-83,82,-39,49,70,65,-35,-7,66,38,-76,92,0,-94,-28, 68,43,21,-70,25,76,39,-31,-37,-30,-1,-39,-34,14,-5,-19,54,-21,-19,- 3,10,68,74,50,13,-9,54,41,-78,-77,28,-17,76,-41,-51,17,-90,56,25,58,90 ]

...其他 99 个 ...

+++ 好的,通过了 100 次测试。

由于这个问题没有答案,我自己得到的,我在这里创建了一个帐户并分享它

【讨论】:

  • 那么该列表中的每个元素都是测试种子吗?
  • "那么该列表中的每个元素都是测试种子吗?– Will Sewell" ...当您编写自己的生成器时,您可以自己看到:.. charGen :: Gen Char charGen = elements "abcd" .. prop_charToNumAndBackAgain :: 属性 prop_charToNumAndBackAgain = forAll charGen (\c -> chr (fromEnum c) == c) .. main :: IO () main = do verboseCheck prop_charToNumAndBackAgain .. *Tests> main Passed: 'd ' 通过:'c' 通过:'a' 通过:'d'
猜你喜欢
  • 1970-01-01
  • 2014-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
相关资源
最近更新 更多