如何在sbt asssembly中包含测试类和测试依赖项

Boz*_*zho 8 scala sbt sbt-assembly

我需要打包我的测试类,资源以及使用sbt程序集测试依赖项.

这个问题sbt-assembly:包括测试类没有帮助 - 测试:程序集仍然没有生成包含任何所需类的jar.

请注意,我的设置目前如下所示:

FooBuild.scala:

lazy val cucumberAssemblySettings = assemblySettings ++ Seq(
    mainClass in assembly := Some("cucumber.api.cli.Main"),
    jarName   in assembly := "cucumber.jar",
    mergeStrategy in assembly := {
      case "application.conf"     => MergeStrategy.concat
      case "logback.xml"          => MergeStrategy.last
      case x                      => defaultMergeStrategy(x)
    }
  )
Run Code Online (Sandbox Code Playgroud)

这是关于子项目foo-cucumber:

lazy val foo_cucumber = Project("foo-cucumber", file("foo-cucumber"))
    .settings(defaultSettings: _*)
    .settings(cucumberAssemblySettings: _*)
    .dependsOn(
      foo_test_server % "compile->compile;test->test",
      foo_test_utils % "compile->compile;test->test"
    )
Run Code Online (Sandbox Code Playgroud)

即使我附加(Test, assembly)在上面的设置中,我只得到一个jar(其名称不是指定的名称,但是全名,带有版本),不管我是否调用sbt foo-cucumber/test:assembly或者是否包含测试类或依赖项sbt foo-cucumber/assembly

如何获得包含所有内容的jar(编译和测试类和依赖项)

Boz*_*zho 3

多模块项目的关键是这样设置:

.settings(inConfig(Test)(cucumberAssemblySettings): _*)
Run Code Online (Sandbox Code Playgroud)

然后在设置中没有任何in (Test, assembly)

  • 你必须运行“测试:程序集”。文件没有其他修改 (2认同)