2013-05-15 57 views
1

我創建自定義任務的gradle產出。我不知道如何創建將使用我的自定義任務類的任務。可能嗎?我想創建這個任務用於jenkins上運行的功能測試。單元測試 - 運行任務的編程

這是我的自定義任務:

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 
    } 
} 

回答

0

ProjectBuilder是用於那些不執行任務的低級別的測試。它的甜蜜點是測試插件。另外,你會編寫更高級別的測試來執行真正的構建(因此也包括任務)。您通常會使用Gradle工具API來啓動這些構建。查看完整的Gradle發行版中的工具API示例。

+0

謝謝!那就是我想要的。我會盡量使用它。 – pepuch