在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)