Intellij 中断言和测试的 ScalaTest 错误
ScalaTest errors on assert and test in Intellij
我是 Scala 和 Intellij 的新手,也是 ScalaTest 的新手。我已经使用最新的 Scala 插件设置了 Intellij 14 和 Scala 2.11.4
,一切正常。然后我尝试介绍ScalaTest,我很困惑。我从 scalatest.org
下载了最新版本的 ScalaTest (scalatest_2.11-2.2.1.jar
)。我进入我的项目结构并选择 "Modules",单击绿色加号并添加 scalatest_2.11-2.2.1.jar
。一切顺利,我可以在我的项目中的 External Libraries
中看到 scalatest jar。当我创建我的第一个测试时,它导入了 org.scalatest.Funsuite
和 class 扩展的 FunSuite,一切都很好。然后我尝试了一个我从互联网上复制的非常简单的测试。
import org.scalatest.FunSuite
class MyTest extends FunSuite {
test("this is a test") {
assert(true)
}
}
我得到 2 个错误。它无法解析具有该签名的 "assert" 引用,对于 "test" 方法,它表示 unspecified value parameters Seq[Tag]: () => BoxedUnit
。
我可以看到 "assert" 和 "test" 的其他方法签名,但我不能使用最基本的方法签名。
感谢您的帮助
虽然我没有收到完全相同的错误消息,但我遇到了类似的总体问题,直到我意识到您需要另外两个 JAR 才能成功使用 ScalaTest:scala-reflect-2.11.4.jar
和 scala-xml-2.11-1.0.2.jar
。
如果您坚持手动执行此操作,您还应确保将测试放在标记为 "tests" 目录的目录中——因此以绿色突出显示:您可以在相同的 "Modules" 选项卡,但在 "Sources" 子选项卡中而不是 "Dependencies"。您还需要检查在 "Dependencies" 子选项卡的 "Scope" 列中,您添加的 jar 标记为 "Test" 而不是 "Compile"。
另一方面,如果您在 IntelliJ 中创建 SBT 项目而不是常规的 Scala 项目,则只需将以下内容添加到 build.sbt:
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.1" % "test"
出现提示时重新导入 build.sbt,然后您就可以开始编写和 运行 测试:所有依赖项和测试目录都已正确设置并且全部 "just works"。我刚刚以这种方式创建了一个空项目,运行 你的例子。从开始到结束大约花了一分钟。
显然,您面临着在手动管理 JAR 和学习另一种工具之间进行权衡,但此时学习 SBT 的基础知识可能值得您花时间。
我是 Scala 和 Intellij 的新手,也是 ScalaTest 的新手。我已经使用最新的 Scala 插件设置了 Intellij 14 和 Scala 2.11.4
,一切正常。然后我尝试介绍ScalaTest,我很困惑。我从 scalatest.org
下载了最新版本的 ScalaTest (scalatest_2.11-2.2.1.jar
)。我进入我的项目结构并选择 "Modules",单击绿色加号并添加 scalatest_2.11-2.2.1.jar
。一切顺利,我可以在我的项目中的 External Libraries
中看到 scalatest jar。当我创建我的第一个测试时,它导入了 org.scalatest.Funsuite
和 class 扩展的 FunSuite,一切都很好。然后我尝试了一个我从互联网上复制的非常简单的测试。
import org.scalatest.FunSuite
class MyTest extends FunSuite {
test("this is a test") {
assert(true)
}
}
我得到 2 个错误。它无法解析具有该签名的 "assert" 引用,对于 "test" 方法,它表示 unspecified value parameters Seq[Tag]: () => BoxedUnit
。
我可以看到 "assert" 和 "test" 的其他方法签名,但我不能使用最基本的方法签名。
感谢您的帮助
虽然我没有收到完全相同的错误消息,但我遇到了类似的总体问题,直到我意识到您需要另外两个 JAR 才能成功使用 ScalaTest:scala-reflect-2.11.4.jar
和 scala-xml-2.11-1.0.2.jar
。
如果您坚持手动执行此操作,您还应确保将测试放在标记为 "tests" 目录的目录中——因此以绿色突出显示:您可以在相同的 "Modules" 选项卡,但在 "Sources" 子选项卡中而不是 "Dependencies"。您还需要检查在 "Dependencies" 子选项卡的 "Scope" 列中,您添加的 jar 标记为 "Test" 而不是 "Compile"。
另一方面,如果您在 IntelliJ 中创建 SBT 项目而不是常规的 Scala 项目,则只需将以下内容添加到 build.sbt:
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.1" % "test"
出现提示时重新导入 build.sbt,然后您就可以开始编写和 运行 测试:所有依赖项和测试目录都已正确设置并且全部 "just works"。我刚刚以这种方式创建了一个空项目,运行 你的例子。从开始到结束大约花了一分钟。
显然,您面临着在手动管理 JAR 和学习另一种工具之间进行权衡,但此时学习 SBT 的基础知识可能值得您花时间。