Gradle Plugin Test Suites
| You can open this sample inside an IDE using the IntelliJ native importer, Eclipse Buildship. | 
This sample shows how to unit and functional test a Gradle plugin.
The project is a simple Gradle plugin implemented in Java with a unit test using Gradle’s ProjectBuilder and a functional test using Gradle Test Kit.
build.gradle
plugins {
	id 'dev.gradleplugins.java-gradle-plugin' version '1.2'
	id 'dev.gradleplugins.gradle-plugin-unit-test' version '1.2'
	id 'dev.gradleplugins.gradle-plugin-functional-test' version '1.2'
}
gradlePlugin {
	plugins {
		helloWorld {
			id = 'com.example.hello'
			implementationClass = 'com.example.BasicPlugin'
		}
	}
}
repositories {
	mavenCentral()
}
test {
	dependencies {
		implementation spockFramework()
		implementation groovy()
	}
}
functionalTest {
	dependencies {
		implementation spockFramework()
		implementation groovy()
		implementation gradleTestKit()
	}
}build.gradle.kts
plugins {
	id("dev.gradleplugins.java-gradle-plugin") version("1.2")
	id("dev.gradleplugins.gradle-plugin-unit-test") version("1.2")
	id("dev.gradleplugins.gradle-plugin-functional-test") version("1.2")
}
gradlePlugin {
	plugins {
		create("helloWorld") {
			id = "com.example.hello"
			implementationClass = "com.example.BasicPlugin"
		}
	}
}
repositories {
	mavenCentral()
}
test {
	dependencies {
		implementation(spockFramework())
		implementation(groovy())
	}
}
functionalTest {
	dependencies {
		implementation(spockFramework())
		implementation(groovy())
		implementation(gradleTestKit())
	}
}To build and test the plugin:
$ ./gradlew check BUILD SUCCESSFUL 9 actionable tasks: 9 executed
Gradle executes both test suites, which is a unit test and a functional test, as expected. The reports are available at their conventional location:
$ ls ./build/reports/tests functionalTest test
The build scan displays the test events:
 
For more information, see Gradle Plugin Development reference chapters and user manual chapter.