我的一个项目将提供一个jar包,应该用于其他几个项目的单元测试.到目前为止,我设法让sbt生成objects-commons_2.10-0.1-SNAPSHOT-test.jar并在我的存储库中发布它.
但是,我找不到告诉sbt在其他项目中将该工件与测试范围一起使用的方法.
在我的build.scala中添加以下依赖项将不会加载测试工件.
"com.company" %% "objects-commons" % "0.1-SNAPSHOT",
"com.company" %% "objects-commons" % "0.1-SNAPSHOT-test" % "test",
Run Code Online (Sandbox Code Playgroud)
我需要的是使用默认的.jar文件作为编译和运行时依赖项,使用-test.jar作为我的测试范围中的依赖项.但不知何故,sbt从未试图解决测试jar.
Sch*_*rdt 17
如何使用测试工件
要在发布主工件时启用发布测试工件,您需要添加到库的build.sbt:
publishArtifact in (Test, packageBin) := true
Run Code Online (Sandbox Code Playgroud)
发布你的工件.至少应该有两个JAR:objects-commons_2.10.jar和objects-commons_2.10-test.jar.
要在运行时使用库并在测试范围内使用测试库,请将以下行添加到主应用程序的build.sbt:
libraryDependencies ++= Seq("com.company" % "objects-commons_2.10" % "0.1-SNAPSHOT"
, "com.company" % "objects-commons_2.10" % "0.1-SNAPSHOT" % "test" classifier "tests" //for SBT 12: classifier test (not tests with s)
)
Run Code Online (Sandbox Code Playgroud)
第一个条目加载运行时库,第二个条目强制"tests"工件仅在测试范围内可用.
我创建了一个示例项目:
git clone git@github.com:schleichardt/stackoverflow-answers.git --branch so15290881-how-do-i-resolve-my-own-test-artifacts-in-sbt
Run Code Online (Sandbox Code Playgroud)
或者您可以直接在github中查看示例.
| 归档时间: |
|
| 查看次数: |
2325 次 |
| 最近记录: |