我想开始使用 ScalaTest 在 Scala 中编写简单的测试。
但是由于某种原因,我可以访问org.scalatest
但不能访问org.scalatest.FunSuite
这是我的build.sbt
样子:
name := "Algorithms"
version := "0.1"
scalaVersion := "2.13.3"
libraryDependencies += "org.scalactic" %% "scalactic" % "3.2.0"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.0" % "test"
Run Code Online (Sandbox Code Playgroud)
我不明白它是否可以访问,scalatest
那么为什么缺少FunSuite
,FlatSpec
和其他样式?
运行的输出test
上sbt shell
[error] <Project Path>\Algorithms\src\test\scala\Course1\Week1\MaxPairProductTest.scala:3:48: type FunSuite is not a member of package org.scalatest
[error] class MaxPairProductTest extends org.scalatest.FunSuite {
[error] ^
Run Code Online (Sandbox Code Playgroud)
Mar*_*lic 18
ScalaTest 3.2.0 已经完成了对之前版本单体的模块化
ScalaTest 3.2.0 的主要变化是执行了我们在 3.0.8 和 3.1.0 中准备的模块化。因此,许多不推荐使用的名称已被删除,因为这些不推荐使用会跨越模块边界。
这意味着在 3.1.0 中,以下定义
import org.scalatest.FunSuite
class ExampleSuite310 extends FunSuite {}
Run Code Online (Sandbox Code Playgroud)
只会引发弃用通知
The org.scalatest.FunSuite trait has been moved and renamed. Please use org.scalatest.funsuite.AnyFunSuite instead. This can be rewritten automatically with autofix: https://github.com/scalatest/autofix/tree/master/3.1.x", "3.1.0"
Run Code Online (Sandbox Code Playgroud)
在 3.2.0 中它已被完全删除。因此,从 3.2.0 开始,您应该像这样定义
import org.scalatest.funsuite.AnyFunSuite
class ExampleSuite320 extends AnyFunSuite {}
Run Code Online (Sandbox Code Playgroud)
有关新名称的完整列表,请参阅弃用到期。
请注意,我们仍然可以导入一个工件,它将传递所有子工件
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.0" % "test"
Run Code Online (Sandbox Code Playgroud)
但是现在我们也可以选择只依赖于特定的子工件
libraryDependencies += "org.scalatest" %% "scalatest-funsuite" % "3.2.0" % "test"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1460 次 |
最近记录: |