scala - 如何在 "package"之前运行 'test"

标签 scala sbt

我有一个 Scala 编译器项目。一些测试用例依赖于生成的 jar 文件。
因此,我总是在运行“测试”任务之前手动运行“包”任务。

如何添加一个 SBT 任务来完成“测试”的工作,但将取决于“包”?

最佳答案

sbt 0.12:

将以下内容添加到您的项目设置中:

(test in Test) <<= (test in Test) dependsOn (Keys.`package` in Compile)

这会更改项目的测试任务。但您也可以定义自己的任务:
val myTestTask = TaskKey[Unit]("my-test-task", "runs package and then test")

然后将其添加到您的项目设置中:
myTestTask <<= (test in Test) dependsOn (Keys.`package` in Compile)

sbt 0.13:

将以下内容添加到您的项目设置中:
(test in Test) := {
  (Keys.`package` in Compile).value
  (test in Test).value
}

这会更改项目的测试任务。但您也可以定义自己的任务:
val myTestTask = taskKey[Unit]("runs package and then test")

然后将其添加到您的项目设置中:
myTestTask := {
  (Keys.`package` in Compile).value
  (test in Test).value
}

关于scala - 如何在 "package"之前运行 'test",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10412675/

相关文章:

scala - 导入 sbt 项目时出错,服务器访问错误, Unresolved 依赖项

scala - 设置 sbt scalafx 项目

java - 如何从scala调用通配符java函数

scala - 类型符号与Scala反射镜之间的关系

multithreading - Scala 的阻塞上下文似乎不适用于混合阻塞/非阻塞作业。为什么?

playframework - test/resources目录中的源代码将在Play 2中进行编译

scala - 覆盖 spark 的 guava 依赖版本

scala - 错误 : `<<=` operator is removed. 使用 `key := { x.value }` 或 `key ~= (old => { newValue })`

java - 使 JNI 路径在 SBT 中工作

使用两列(不区分大小写)在数据帧上使用 Scala LEFT JOIN