将src/test打包成sbt项目中的jar

Packaging src/test into a jar in a sbt project

在 sbt 项目中,用于测试的标准源代码位置是:

src/test/scala/

中的 Scala 源代码

Java 来源 src/test/java/

我运行sbt package

时那些测试文件没有打包

我想把打包好的jar复制到远程机器上运行测试

有没有办法让sbt在包中包含测试资源?

测试以包括:% "compile->test" 在您声明测试的行中的 sbt 中。大概是这样的:

libraryDependencies += "org.scala-tools.testing" %% "scalacheck" % "1.9" % "test" 

会是这样的:

libraryDependencies += "org.scala-tools.testing" %% "scalacheck" % "1.9" % "compile->test"

我认为您需要 "assembly" 而不是包来包含测试库,但我不确定这一点。

只需 运行 sbt test:package 即可。这将生成一个与主 jar 分开的 jar,所以不要忘记复制两者(和测试依赖项);如果你只想管理一个罐子,你可以使用 sbt-assembly 和 运行 sbt test:assembly.

这是显式 运行 test:package 的另一种选择。 在 sbt 中,对于项目定义,您更新 packageBin 设置,如下所示。

项目 .settings(编译中的 fullClasspath :=(测试中的 fullClasspath).value ) .settings(编译中的 packageBin := (测试中的 packageBin).value)

完成后,将创建项目-tests.jar。