直接从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")
但两者都不起作用。我无法获得更多的输出。
答案 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