Scalacheck冗长

时间:2016-05-24 09:42:21

标签: scala scalacheck

直接从Scalacheck用户指南中获取此示例:

scala> import org.scalacheck.Prop.{forAll, BooleanOperators}

scala> val propTrivial = forAll { n: Int =>
     |  (n == 0) ==> (n == 0)
     | }

scala> propTrivial.check
! Gave up after only 4 passed tests. 500 tests were discarded.

我希望看到导致测试失败的实际值。我的项目中有一个类似的测试用例,它产生类似的(无用的)消息。

我尝试将详细程度选项添加到sbt:

testOptions in Test += Tests.Argument(TestFrameworks.ScalaCheck, "-verbosity", "5")

并尝试调用该属性

testOptions in Test += Tests.Argument(TestFrameworks.ScalaCheck, "-verbosity", "5")

但两者都不起作用。我无法获得更多的输出。

1 个答案:

答案 0 :(得分:1)

在这种情况下,没有任何值导致测试失败,但ScalaCheck放弃了,因为它找不到足够的值来尝试。这就是为什么它说500 tests were discarded - 它不是无用的错误消息,它只是说生成的值与您的n == 0前提条件不匹配。

如果您尝试 失败的测试,它会告诉您测试失败:

scala> forAll { n: Int => n > 0 }
res0: org.scalacheck.Prop = Prop

scala> res0.check
! Falsified after 2 passed tests.
> ARG_0: -2147483648