如何使用 scalatest 运行 sbt 测试?我有一个错误:对象 scalatest 不是包 org 的成员
Posted
技术标签:
【中文标题】如何使用 scalatest 运行 sbt 测试?我有一个错误:对象 scalatest 不是包 org 的成员【英文标题】:How do I run sbt test with scalatest? I had an error: object scalatest is not a member of package org 【发布时间】:2021-05-24 22:16:02 【问题描述】:我想使用 scalatest 在以下项目中测试我的代码。
MyProject/
+ src
- main/scala/mypackage1/Calc.scala
- test/scala/mypackage1/CalcTest.scala
- built.sbt
内置.sbt
libraryDependencies += "org.scalactic" %% "scalactic" % "3.2.2"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.2" % "test
Calc.scala
package mypackage1
object Calc extends App
def add(x: Int, y: Int) = x + y
CalcTest.scala
package mypackage1
class CalcTest extends org.scalatest.funsuite.AnyFunSuite
test("Calc.add")
assert(Calc.add(1, 2) == 3)
我在test/scala/mypackage1
中运行sbt test
,但出现编译错误。
我该怎么办?
[error] /workspaces/MyProject/src/test/scala/myproject1/CalcTest.scala:3:28: object scalatest is not a member of package org
[error] class CalcTest extends org.scalatest.funsuite.AnyFunSuite
[error] ^
【问题讨论】:
你在运行测试之前是否重新加载了你的 sbt 项目定义? 您使用的是哪个 Scala 版本? 尝试sbt dependencyTree
(在 sbt 1.4 及更高版本中)查看正在加载哪些 jar - 描述中的 libraryDependencies 应该可以工作,但您的 build.sbt 似乎存在问题
【参考方案1】:
抱歉,我自己解决了这个问题。
我在MyProject
目录(项目的根目录,而不是test/scala/mypackage1
)中运行stb test
,它工作正常。
感谢您的帮助。
【讨论】:
以上是关于如何使用 scalatest 运行 sbt 测试?我有一个错误:对象 scalatest 不是包 org 的成员的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ScalaTest / SBT 中按顺序运行测试套件?
使用 ScalaTest 时从 SBT 中排除特别标记的测试
sbt 中的 ScalaTest:有没有办法在没有标签的情况下运行单个测试?