我正在为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 :(得分:0)
ProjectBuilder
适用于不执行任务的低级别测试。它的最佳位置是测试插件。此外,您还可以编写执行实际构建的高级测试(因此也可以编写任务)。您通常使用Gradle工具API来启动这些构建。在完整的Gradle分发中查看工具API示例。
答案 1 :(得分:0)
为每个任务操作调用 Action.execute 自己:
Route::get('application/approve/{id}', 'CandidateController@postApprove')->name('application');
Route::get('candidate', [CandidateController::class, 'approve'])->name('candidate.approve');
Route::resource('candidates', CandidateController::class);