1

我正在开发带有单元测试的 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 任务不是(未找到此任务的输出文件)。如何从测试脚本中正确调用任务序列?

更新 它适用于实际项目。任务序列被调用,但它在测试中不起作用测试项目构建目录根本不存在的真正问题。请帮我解决一下这个。看起来根本没有创建测试项目构建目录。看起来它只是在评估,但不使用任何文件操作。

4

0 回答 0