我正在运行 sbt-assembly 以构建一个可以部署在其他地方的 jar 文件。我想针对这个 jar 文件而不是针对本地 .class 文件运行我的测试。针对本地 .class 文件运行是默认设置,sbt test
但我想改为测试 jar(但不将测试类文件合并到 jar 中)。
问问题
2569 次
1 回答
1
要在测试中构建程序集 jar,您需要配置
import AssemblyKeys._
Project.inConfig(Test)(baseAssemblySettings)
jarName in (Test, assembly) := s"${name.value}-test-${version.value}.jar"
所以现在你可以用 test:assembly 准备 uber-jar。但是我不知道用这个 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 在组装阶段正在运行测试,但我很确定它会再次对尚未打包的类进行测试。Sou 您可能希望将它们排除在装配阶段之外
test in (Test, assembly) := {}
于 2014-10-17T14:09:56.237 回答