gpt4 book ai didi

scala - 为什么我的 Scalacheck/Scalatest PropertyCheckConfig 被忽略了?

转载 作者:行者123 更新时间:2023-11-28 19:42:57 37 4
gpt4 key购买 nike

我有一个包含很多 Scalacheck 生成器的项目,该项目收到 GeneratorDrivenPropertyCheckFailedException 消息“在 0 次成功的属性评估后放弃。2 次评估被丢弃。”

我想让它尝试多次评估它,比如 500(默认值)就可以了,但我没有看到我的配置覆盖实际被使用。

我将此代码添加到测试类中,但仍然收到完全相同的消息。我试过“sbt clean”只是为了确保那里没有发生奇怪的事情。

implicit override val generatorDrivenConfig = PropertyCheckConfig(minSuccessful = 1, maxDiscarded = 500, workers = 1)

为什么我的 Scalacheck/Scalatest PropertyCheckConfig 被忽略了?

我正在使用 Scalatest 2.2.1 和 Scalacheck 1.12.1 以及 Scala 2.10.4

最佳答案

如果您过滤生成器(例如,通过使用 suchThat),生成器可能会创建大量不满足您的 suchThat 的值约束,因此被丢弃。当我限制字符串的长度时,我遇到了这个问题。我可以给你的一个建议是尝试以不同的方式创建你的 Gen,你不会丢弃太多它们。

例如,这是我第一次生成 4 个字符的字符串:

val gen4CharString = Gen.listOfN(4, (Gen.listOfN[Char] suchThat (s => s != "" && s.length == 4)))

这导致太多生成的值被丢弃,导致类似于您所看到的错误。像下面这样改变发电机解决了这个问题。

val gen4CharString = Gen.listOfN[Char] (4, Gen.alphaChar).map (_.mkString)

关于scala - 为什么我的 Scalacheck/Scalatest PropertyCheckConfig 被忽略了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27791361/

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