将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。
在 sbt 项目中,用于测试的标准源代码位置是:
src/test/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。