如何为 Gradle 插件编写集成测试

How Can I Write An Integration Test For A Gradle Plugin

我正在写a plugin for Gradle。它是 Maven 插件的一个端口,我使用 Maven 集成测试插件对其进行了测试。我想为不同的 build.gradle 文件创建一系列测试。

有什么好的方法可以做到这一点 Gradle(因为我的方法似乎不起作用)。

是的,进行简单测试的最简单方法是使用 org.gradle.testfixtures.ProjectBuilder class。

Project project = ProjectBuilder.builder().build()
project.apply plugin: 'dependencyAnalysis'
project.apply plugin: 'java'

assertTrue(project.tasks.analyze instanceof AnalyzeTask)

然而,这只能测试到并包括配置阶段。因此,对于执行阶段的测试,这将不起作用。

您也可以像 Opal 建议的那样使用工具 API,但我建议您通过 nebula 测试插件使用它。 https://github.com/nebula-plugins/nebula-test

Gradle TestKit 最近已添加到 Gradle 发行版中以帮助进行集成测试。在撰写本文时,它缺少一些功能,但我已经使用过它并且非常有用。我没有用过 nebula-test 所以无法比较它们。