Scala SBT可以';找不到要运行或编译的测试
正如标题所说,我有一个带有一个模块的sbt项目(目前),但是Scala SBT可以';找不到要运行或编译的测试,scala,sbt,scalatest,typesafe-activator,Scala,Sbt,Scalatest,Typesafe Activator,正如标题所说,我有一个带有一个模块的sbt项目(目前),但是test:compile没有捕获任何语法错误(测试也没有找到任何要运行的测试)。按照我的理解,sbt项目的设置包括src/main和src/test(需要配置src/it)。我对SBT有点业余,但我会尽量提供所有相关信息: 结构: Root build.sbt mymodule build.sbt src main scala test scala Ro
test:compile
没有捕获任何语法错误(测试也没有找到任何要运行的测试)。按照我的理解,sbt项目的设置包括src/main和src/test(需要配置src/it)。我对SBT有点业余,但我会尽量提供所有相关信息:
结构:
Root
build.sbt
mymodule
build.sbt
src
main
scala
test
scala
Root build.sbt(我认为这些配置是不必要的,但我很绝望):
MyModule build.sbt基本上只是一个库依赖项列表(除非其中一个是问题,不确定),如下所示:
libraryDependencies ++= Seq(
"org.mockito" % "mockito-all" % "1.9.5" % "test",
"org.scalamock" %% "scalamock-core" % scalaMockVersion % "test",
"org.scalamock" %% "scalamock-scalatest-support" % scalaMockVersion % "test",
"org.codehaus.janino" % "janino" % "2.7.8",
"org.http4s" %% "http4s-dsl" % "0.11.2",
"org.http4s" %% "http4s-blaze-server" % "0.11.2",
"junit" % "junit" % "4.8.1" % "test" // Here because of a bug in Ivy
)
让我知道我还能做些什么,这真的让我绞尽脑汁。用line
scalaSource in Test := baseDirectory.value / "test"
您已将sbt配置为在位置Root/mymodule/test
(而不是在默认位置/src/test/scala
)查找测试源
因此,您可以选择(i)将测试放在根/mymodule/test
中,(ii)或者删除该配置行,将测试保留在其默认位置。带行
scalaSource in Test := baseDirectory.value / "test"
您已将sbt配置为在位置Root/mymodule/test
(而不是在默认位置/src/test/scala
)查找测试源
因此,您的选项是(i)将测试放在
根/mymodule/test
中,(ii)或者删除该配置行,将测试保留在其默认位置。我可以看到此问题已得到解决,但发生此情况的原因截然不同。我通过添加sbt插件并启用它,将play框架添加到现有项目中,测试停止运行。可能项目也没有编译,但我没有注意到,因为测试没有运行。play framework sbt插件似乎弄乱了源目录,我必须这样做才能恢复原样:
lazy val root=(文件(“.”)中的项目)
.enablePlugins(PlayService、PlayLayoutPlugin)
.设置(
名称:=“咖啡”,
测试中的scalaSource:=baseDirectory.value/“src/Test/scala”,
编译中的scalaSource:=baseDirectory.value/“src/main/scala”
)
看起来很粗鲁 我可以看出这个问题已经解决了,但我有一个完全不同的原因。我通过添加sbt插件并启用它,将play框架添加到现有项目中,测试停止运行。可能项目也没有编译,但我没有注意到,因为测试没有运行。play framework sbt插件似乎弄乱了源目录,我必须这样做才能恢复原样:
lazy val root=(文件(“.”)中的项目)
.enablePlugins(PlayService、PlayLayoutPlugin)
.设置(
名称:=“咖啡”,
测试中的scalaSource:=baseDirectory.value/“src/Test/scala”,
编译中的scalaSource:=baseDirectory.value/“src/main/scala”
)
看起来很粗鲁 我使用命令
sbt clean compile
我使用命令sbt clean compile
从我的项目根目录运行sbt
from。我可以运行sbt
,它确实加载了项目,我可以通过projectmymodule
更改项目,但遗憾的是,在我的项目根目录中找不到/运行测试。您从哪里运行sbt
。我可以运行sbt
,它确实加载了项目,我可以通过project mymodule
更改项目,但遗憾的是,找不到/运行良好的测试,我的测试在Root/mymodule/test
上,所以它应该可以正常工作。实际上,它们在Root/mymodule/src/test上,所以可能您正在做一些事情……那么这些测试类在哪里呢?在Root/mymodule/test
下或Root/mymodule/src/test
下?根据您的原始配置,前者是正确的。好的,我的测试在Root/mymodule/test
上,所以它应该可以工作,实际上它们在Root/mymodule/src/test
上,所以可能您正在做一些事情……那么这些测试类在哪里?在Root/mymodule/test
下或Root/mymodule/src/test
下?根据您的原始配置,前者是正确的。