如何对sbt-assembly构建的jar运行测试

时间:2014-10-17 13:00:03

标签: scala sbt sbt-assembly

我正在运行sbt-assembly以构建可以在其他地方部署的单个jar文件。我想对这个jar文件而不是本地.class文件运行我的测试。使用sbt test默认运行本地.class文件,但我想测试jar(但不将测试类文件合并到jar中)。

1 个答案:

答案 0 :(得分:2)

要在测试中构建程序集jar,需要进行配置

import AssemblyKeys._

Project.inConfig(Test)(baseAssemblySettings)

jarName in (Test, assembly) := s"${name.value}-test-${version.value}.jar"

所以现在你可以准备uber-jar with test:assembly。但是我不知道用这个jar从sbt运行测试的简单方法。我会选择自定义命令,例如test:run-test-assembly,它将在内部执行类似的操作

scala -classpath uber-jar-test.jar classpath scalatest-<version>.jar org.scalatest.tools.Runner -p compiled_tests

sbt-assembly正在组装阶段运行测试,但我很确定它还没有打包类。你可能想用

将它们从装配阶段排除
test in (Test, assembly) := {}