【发布时间】:2023-03-20 01:31:01
【问题描述】:
作为 CI 设置的一部分,第一步是使用 SBT dist 创建一个包/jar。以下步骤是使用dist-created jar 运行单元、集成和功能测试。
SBT 可以做到这一点吗?
通常我使用sbt testOnly "Unit.*",但这适用于项目的上下文。当已经有一个 jar 时,我找不到任何说明如何执行此操作的文档。
我正在使用 ScalaTest,我知道有一个跑步者可以使用 http://www.scalatest.org/user_guide/using_the_runner。但如果可能的话,使用 SBT 会更简单。
例如,我正在寻找这样的东西:
sbt testOnly "Unit.* -jar myjar.jar"
当我使用以下内容时,我的测试是否会包含在 jar 中:
sbt dist
?
编辑
- 我创建了一个新文件夹
-
我添加了
build.sbt,内容如下:name := "abc" version := "1.0-SNAPSHOT" scalaVersion := "2.10.0" 我添加了
lib文件夹并将我的测试jar 复制到其中我跑了
sbt testOnly Unit.*找不到任何测试
编辑 2
我尝试使用以下“正确”的 SBT 文件:
name := "ihs2tests"
version := "1.0-SNAPSHOT"
scalaVersion := "2.10.0"
unmanagedBase in Test := new java.io.File(".")
并将test.jar 移动到项目的根目录中。同样,没有找到任何测试。
【问题讨论】:
-
这应该可以帮助您入门:stackoverflow.com/a/16409096/2197460.
-
测试代码通常不包含在
distjar 中,但 @DaveSwartz 的链接可能对此有所帮助。 -
sbt test:dist怎么样?这不包括(测试)dist jar 中的测试吗?