scalatest:对象scalatest不是包org的成员

Ben*_*min 12 scala intellij-idea sbt scalatest

编辑:如果文件在src/test/scala/tests /但不在src/main/scala/mypackage /为什么?

我尝试过主题的解决方案,人们有几乎相同的问题但没有效果.

详细说明,我在build.sbt中有这个:

libraryDependencies ++= Seq(
   ...
  "org.scalatest" % "scalatest_2.10" % "2.2.1" % "test",
   ...
Run Code Online (Sandbox Code Playgroud)

在intellij中有一个类:

import org.scalatest.{BeforeAndAfterAll, Suite}
Run Code Online (Sandbox Code Playgroud)

{BeforeAndAfterAll,Suite}为红色,所以我觉得scalatest找到了

sbt包也不起作用:

object scalatest不是包org [error] import org.scalatest的成员.{BeforeAndAfterAll,Suite}

我已经尝试过了:

  • sbt清理更新
  • 重启+使intellij的缓存无效
  • 删除.idea /并重新导入
  • libraryDependencies + ="org.scalatest"%"scalatest_2.10"%"2.0"%"test"而不是ogf实际
  • 我的键盘上有神奇的仪式

什么都行不通

任何的想法 ?

Oni*_*iel 20

你应该看一下sbt项目结构:

src/
  main/
    resources/
       <files to include in main jar here>
    scala/
       <main Scala sources>
    java/
       <main Java sources>
  test/
    resources
       <files to include in test jar here>
    scala/
       <test Scala sources>
    java/
       <test Java sources>
Run Code Online (Sandbox Code Playgroud)

你的scala测试应该在src/test/scala/.

如果你真的想在main中使用scalatest(并且你知道你想要做什么),试试这个:

  "org.scalatest" % "scalatest_2.10" % "2.2.1",
Run Code Online (Sandbox Code Playgroud)

在您的原始版本中build.sbt,"test"是配置,这意味着scalatest将仅位于测试类路径中,并且主要源不需要它.这通常是库的良好实践,因为您的用户通常不需要您的测试依赖项来使用您的库(ref).