Я занимаюсь написанием настраиваемого плагина для gradle и как часть модульного тестирования, я хотел бы вызвать свою задачу, но в такой ситуации, когда выполняются необходимые задачи.
Фактический плагин, к сожалению, является внутренним проектом, поэтому я не могу точно указать источник, но я подготовил unit test, который демонстрирует проблему:
package toy
import org.gradle.api.Project
import org.gradle.testfixtures.ProjectBuilder
import org.junit.Test
class ToyTasksTest {
boolean task1Run = false
boolean task2Run = false
@Test
public void taskDependencies(){
Project p = ProjectBuilder.builder().build()
p.task("task1") << {
p.logger.info("task1 running")
task1Run = true
}
def task2 = p.task("task2", dependsOn: 'task1') << {
p.logger.info("task2 running")
task2Run = true
}
task2.execute() // <--- what magic do I need here instead of .execute()
assert task2Run == true
assert task1Run == true
}
}
Вывод:
Assertion failed:
assert task2Run == true
| |
false false
Проект доступен в github, если вы хотите быстро запустить тест.
Другой способ сказать это, а не писать:
task2.execute()
Я бы хотел запустить эквивалент:
gradle task2
В unit test.