我正在开发带有单元测试的 gradle 插件我正在开发依赖于其他插件的其他任务的任务我正在使用 org.gradle.testfixtures.ProjectBuilder 来模拟测试项目。
Project project = ProjectBuilder.builder().withProjectDir(FIXTURE_WORKING_DIR).build()
project.apply plugin: 'com.android.application'
project.apply plugin: 'com.tac.kulik.uploadapk'
project.android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
versionCode 1
versionName '1.0'
minSdkVersion 22
targetSdkVersion 22
}
buildTypes {
release {
signingConfig signingConfigs.debug
}
alpha{
}
}
}
然后我使用依赖任务
def myTaskName = "myTask${variationName}"
def outputData = variant.outputs.first()
def assembleTask = outputData.assemble
def myTask = project.tasks.create(myTaskName, MyTask)
myTaskTask.dependsOn assembleTask
然后我从测试中调用我的任务
@Test
public void test() {
Project project = TestHelper.evaluatableProject()
project.evaluate()
project.tasks.myTaskFreeRelease.execute()
}
我的任务被调用。但 assemble 任务不是(未找到此任务的输出文件)。如何从测试脚本中正确调用任务序列?
更新 它适用于实际项目。任务序列被调用,但它在测试中不起作用测试项目构建目录根本不存在的真正问题。请帮我解决一下这个。看起来根本没有创建测试项目构建目录。看起来它只是在评估,但不使用任何文件操作。