【问题标题】:Can't Run `test` in Scala Test with SBT无法在使用 SBT 的 Scala 测试中运行`test`
【发布时间】:2014-03-01 02:30:42
【问题描述】:

src/main/scala/Testing.scala

package common
object Add1Method {
  def main(args: Array[String]) = 100+2
  }

project/build.sbt

name := "Foo"

version := "1.0"

scalaVersion := "2.10.2"

libraryDependencies += "org.scalatest" % "scalatest_2.10" % "1.9.1" % "test"

resolvers +=  "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

resolvers +=  "Sonatype Releases" at "http://oss.sonatype.org/content/repositories/releases"

src/test/scala/Test.scala

package test

import common.Testing
import org.scalatest._

class Test extends FlatSpec with Matchers {

      "running main" should "return 102" in {
        val result = Add1Method.main(Array("asdf"))
        assert(result == 102)
      }
    }

但是,当我从 SBT 运行 test 时,出现以下 4 个编译时错误:

[error] Test.scala:4: object scalatest is not a member of package org
[error] import org.scalatest._
[error]            ^
[error] Test.scala:6: not found: type FlatSpec
[error] class Test extends FlatSpec with Matchers {
[error]                        ^
[error] Test.scala:6: not found: type Matchers
[error] class Test extends FlatSpec with Matchers {
[error]                                      ^
[error] Test.scala:8: value should is not a member of String
[error]   "running main" should "return 102" in {
[error]                          ^
[error] four errors found

请注意,我在SBT not finding scalatest for scala 2.10.1 中尝试了建议的答案,但没有成功。

ScalaTest 示例使用相同的导入 - http://www.scalatest.org/quick_start

【问题讨论】:

  • 网站上的示例使用“2.0”。我想知道你是否重新加载了你的 sbt。
  • 我更新到libraryDependencies += "org.scalatest" % "scalatest_2.10" % "2.0" % "test",但运行test时出现同样的错误。
  • 如果你做reload然后clean然后test,输出是什么?您可以将结果公开gist
  • @EECOLOR,与我上述问题相同的 4 个编译时错误。请注意,我运行了reloadclean,最后运行了test。我了解到您担心我未能运行 reload 来更新我的 build.sbt 设置。
  • Kevin,如果您将相同的问题发布到 Stack Overflow 和邮件列表(scalatest-users),两个帖子都应该链接到另一个帖子,这样人们就不会浪费时间回答问题一个地方已经在另一个地方得到了回答。

标签: scala sbt scalatest


【解决方案1】:

我认为问题在于您的build.sbt 放错了位置。它不应该在project/ 中,而是在根目录中,在src 目录旁边。

有关更多信息,请参阅 sbt 文档中的 Directories

【讨论】:

  • 谢谢,@EECOLOR。那成功了。对不起,我没有和你聊天。我刚下班:)
猜你喜欢
  • 2014-11-11
  • 2019-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2021-06-12
  • 2022-01-02
  • 2015-12-21
相关资源
最近更新 更多