在Java Eclipse项目中进行认真的重构时,我经常会破坏构建,但是专注于一次通过一项测试。当运行测试时,Eclipse警告无法编译该项目,但它仍将运行可以编译的测试。

现在,我正在使用SBT,并希望通过“仅测试”来实现相同的目的,但是它尝试编译整个项目,失败,并且不运行测试。我如何告诉它只编译它可以运行的位并进行测试。

最佳答案

您应该在项目定义中添加以下任务:

import sbt._

class Project(info: ProjectInfo) extends DefaultProject(info) {

  lazy val justTest = testTask(testFrameworks, testClasspath, testCompileConditional.analysis, testOptions)

}

这与普通的test任务相同,但最后没有附加依赖项。如果您希望它具有依赖性,请在dependsOn表达式上调用testTask(...)并提供您希望它依赖的任务。
testTask(testFrameworks, testClasspath, testCompileConditional.analysis, testOptions).dependsOn(testCompile, copyResources, copyTestResources)

09-25 22:21
查看更多