1

Gradleのカスタムタスクを作成しています。カスタム タスク クラスを使用するタスクを作成する方法がわかりません。出来ますか?ジェンキンで実行される機能テスト用にこのタスクを作成したいと思います。

これは私のカスタムタスクです:

package pl.gradle

import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
class MyCustomTask extends DefaultTask {

    public MyCustomTask() {
        // do something
    }

    @TaskAction
    def build() {
        ant.echo(message: "only for tests")
    }               
}

そして、これは私のテストクラスです:

package pl.gradle

import static org.junit.Assert.*

import org.gradle.testfixtures.ProjectBuilder
import org.gradle.api.Project
import org.junit.Before;
import org.junit.Test

class MyCustomTaskTest {

    private Project project;
    def task

    @Before
    public void setUp() {
        project = ProjectBuilder.builder().build()
        task = project.task("build", type: MyCustomTask)
    }

    @Test
    public void taskCreatedProperly() {
        assertTrue(task instanceof MyCustomTask)
    }

    @Test
    public void shouldRunTask() {
//      task.execute() // how to run this task? I want to run build() method from MyCustomTask class which is @TaskAction
    }
}
4

2 に答える 2

0

ProjectBuilderタスクを実行しない低レベルのテスト用です。そのスイート スポットはプラグインのテストです。さらに、実際のビルド (およびタスク) を実行する高レベルのテストを作成します。これらのビルドを開始するには、通常、Gradle ツール API を使用します。完全な Gradle ディストリビューションでツール API のサンプルを確認してください。

于 2013-05-15T06:22:38.060 に答える