《scala編程》第三版267頁的例子scalatest中的forAll出錯

import org.scalatest.WordSpec
import org.scalatest.prop.PropertyChecks
import org.scalatest.MustMatchers._
import Element.elem
class ElementSpec extends WordSpec with PropertyChecks {
    "elem result" must {
        "have passed width" in {
            forAll { (w: Int) =>
                whenever (w > 0) {
                    elem('x', w, 3).width must equal (w)
                }
            }
        }
    }
}

該例子使用sbt運行會出現如下錯誤:

Error:(9, 7) Symbol 'term org.scalacheck' is missing from the classpath.

This symbol is required by 'value org.scalatest.prop.GeneratorDrivenPropertyChecks.genAndNameA'.
Make sure that term scalacheck is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
A full rebuild may help if 'GeneratorDrivenPropertyChecks.class' was compiled against an incompatible version of org.
      forAll { (w: Int) =>

Error:(9, 7) Symbol 'type org.scalacheck.Gen' is missing from the classpath.
This symbol is required by 'value org.scalatest.prop.GeneratorDrivenPropertyChecks.genAndNameA'.
Make sure that type Gen is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
A full rebuild may help if 'GeneratorDrivenPropertyChecks.class' was compiled against an incompatible version of org.scalacheck.
      forAll { (w: Int) =>

Error:(9, 7) Symbol 'type org.scalacheck.Arbitrary' is missing from the classpath.
This symbol is required by 'value org.scalatest.prop.GeneratorDrivenPropertyChecks.arbA'.
Make sure that type Arbitrary is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
A full rebuild may help if 'GeneratorDrivenPropertyChecks.class' was compiled against an incompatible version of org.scalacheck.

      forAll { (w: Int) =>

Error:(9, 7) Symbol 'type org.scalacheck.Shrink' is missing from the classpath.
This symbol is required by 'value org.scalatest.prop.GeneratorDrivenPropertyChecks.shrA'.
Make sure that type Shrink is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
A full rebuild may help if 'GeneratorDrivenPropertyChecks.class' was compiled against an incompatible version of org.scalacheck.

      forAll { (w: Int) =>


解決方案:

    sbt中的構造文件build.sbt的末尾加上一句:

libraryDependencies += "org.scalacheck"% "scalacheck_2.12" % "1.13.4" % "test"

    注意:scalacheck_2.12中的2.12與你的scala版本對應,如果你的scala版本爲2.11,此處改寫爲scalacheck_2.11,不然會運行出錯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章