4

他の場所にデプロイできる単一の jar ファイルを作成するために、sbt-assembly を実行しています。ローカルの .class ファイルではなく、この jar ファイルに対してテストを実行したいと考えています。ローカルの .class ファイルに対して実行するのがデフォルトですが、sbt test代わりに jar をテストしたいと思います (ただし、テスト クラス ファイルを jar に組み込むことはありません)。

4

1 に答える 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 はアセンブリ段階でテストを実行していますが、まだパッケージ化されていないクラスに対して実行していると確信しています。おそらく、それらをアセンブリフェーズから除外したいでしょう

test in (Test, assembly) := {}
于 2014-10-17T14:09:56.237 に答える