【发布时间】:2011-07-03 12:42:04
【问题描述】:
在 Java Eclipse 项目中进行认真的重构时,我经常会中断构建,但专注于一次通过一个测试。运行测试时,Eclipse 会警告该项目无法编译,但它仍会运行它可以编译的测试。
现在我正在使用 SBT,并希望通过“仅测试”实现相同的目标,但它尝试编译整个项目,失败,并且不运行测试。我如何告诉它只编译它可以编译的位并运行测试。
【问题讨论】:
在 Java Eclipse 项目中进行认真的重构时,我经常会中断构建,但专注于一次通过一个测试。运行测试时,Eclipse 会警告该项目无法编译,但它仍会运行它可以编译的测试。
现在我正在使用 SBT,并希望通过“仅测试”实现相同的目标,但它尝试编译整个项目,失败,并且不运行测试。我如何告诉它只编译它可以编译的位并运行测试。
【问题讨论】:
您应该将以下任务添加到您的项目定义中:
import sbt._
class Project(info: ProjectInfo) extends DefaultProject(info) {
lazy val justTest = testTask(testFrameworks, testClasspath, testCompileConditional.analysis, testOptions)
}
这与普通的test 任务相同,但最后没有附加依赖项。如果您希望它具有依赖关系,请在 testTask(...) 表达式上调用 dependsOn 并提供您希望它依赖的任务。
testTask(testFrameworks, testClasspath, testCompileConditional.analysis, testOptions).dependsOn(testCompile, copyResources, copyTestResources)
【讨论】: