mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-27 02:18:42 +00:00
Auto configure all test tasks (#34666)
With this change, we apply the common test config automatically to all newly created tasks instead of opting in specifically. For plugin authors using the plugin externally this means that the configuration will be applied to their RandomizedTestingTasks as well. The purpose of the task is to simplify setup and make it easier to change projects that use the `test` task but actually run integration tests to use a task called `integTest` for clarity, but also because we may want to configure and run them differently. E.x. using different levels of concurrency.
This commit is contained in:
parent
4c73854da7
commit
795d57b4f9
@ -99,12 +99,14 @@ class BuildPlugin implements Plugin<Project> {
|
||||
configureSourcesJar(project)
|
||||
configurePomGeneration(project)
|
||||
|
||||
applyCommonTestConfig(project)
|
||||
configureTest(project)
|
||||
configurePrecommit(project)
|
||||
configureDependenciesInfo(project)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** Performs checks on the build environment and prints information about the build environment. */
|
||||
static void globalBuildInfo(Project project) {
|
||||
if (project.rootProject.ext.has('buildChecksDone') == false) {
|
||||
@ -776,9 +778,8 @@ class BuildPlugin implements Plugin<Project> {
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns a closure of common configuration shared by unit and integration tests. */
|
||||
static Closure commonTestConfig(Project project) {
|
||||
return {
|
||||
static void applyCommonTestConfig(Project project) {
|
||||
project.tasks.withType(RandomizedTestingTask) {
|
||||
jvm "${project.runtimeJavaHome}/bin/java"
|
||||
parallelism System.getProperty('tests.jvms', 'auto')
|
||||
ifNoTests System.getProperty('tests.ifNoTests', 'fail')
|
||||
@ -873,6 +874,8 @@ class BuildPlugin implements Plugin<Project> {
|
||||
|
||||
exclude '**/*$*.class'
|
||||
|
||||
dependsOn(project.tasks.testClasses)
|
||||
|
||||
project.plugins.withType(ShadowPlugin).whenPluginAdded {
|
||||
// Test against a shadow jar if we made one
|
||||
classpath -= project.tasks.compileJava.outputs.files
|
||||
@ -884,23 +887,9 @@ class BuildPlugin implements Plugin<Project> {
|
||||
|
||||
/** Configures the test task */
|
||||
static Task configureTest(Project project) {
|
||||
RandomizedTestingTask test = project.tasks.getByName('test')
|
||||
test.configure(commonTestConfig(project))
|
||||
test.configure {
|
||||
project.tasks.getByName('test') {
|
||||
include '**/*Tests.class'
|
||||
}
|
||||
|
||||
// Add a method to create additional unit tests for a project, which will share the same
|
||||
// randomized testing setup, but by default run no tests.
|
||||
project.extensions.add('additionalTest', { String name, Closure config ->
|
||||
RandomizedTestingTask additionalTest = project.tasks.create(name, RandomizedTestingTask.class)
|
||||
additionalTest.classpath = test.classpath
|
||||
additionalTest.testClassesDirs = test.testClassesDirs
|
||||
additionalTest.configure(commonTestConfig(project))
|
||||
additionalTest.configure(config)
|
||||
additionalTest.dependsOn(project.tasks.testClasses)
|
||||
project.check.dependsOn(additionalTest)
|
||||
});
|
||||
}
|
||||
|
||||
private static configurePrecommit(Project project) {
|
||||
|
@ -64,8 +64,6 @@ public class RestIntegTestTask extends DefaultTask {
|
||||
runner.testClassesDirs = project.sourceSets.test.output.classesDirs
|
||||
clusterConfig = project.extensions.create("${name}Cluster", ClusterConfiguration.class, project)
|
||||
|
||||
// start with the common test configuration
|
||||
runner.configure(BuildPlugin.commonTestConfig(project))
|
||||
// override/add more for rest tests
|
||||
runner.parallelism = '1'
|
||||
runner.include('**/*IT.class')
|
||||
|
@ -50,6 +50,7 @@ public class StandaloneRestTestPlugin implements Plugin<Project> {
|
||||
project.getTasks().create("buildResources", ExportElasticsearchBuildResourcesTask)
|
||||
BuildPlugin.globalBuildInfo(project)
|
||||
BuildPlugin.configureRepositories(project)
|
||||
BuildPlugin.applyCommonTestConfig(project)
|
||||
|
||||
// only setup tests to build
|
||||
project.sourceSets.create('test')
|
||||
|
@ -24,7 +24,6 @@ import org.elasticsearch.gradle.BuildPlugin
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.gradle.api.tasks.compile.JavaCompile
|
||||
|
||||
/**
|
||||
* Configures the build to compile against Elasticsearch's test framework and
|
||||
@ -44,7 +43,6 @@ public class StandaloneTestPlugin implements Plugin<Project> {
|
||||
description: 'Runs unit tests that are separate'
|
||||
]
|
||||
RandomizedTestingTask test = project.tasks.create(testOptions)
|
||||
test.configure(BuildPlugin.commonTestConfig(project))
|
||||
BuildPlugin.configureCompile(project)
|
||||
test.classpath = project.sourceSets.test.runtimeClasspath
|
||||
test.testClassesDirs = project.sourceSets.test.output.classesDirs
|
||||
|
@ -4,6 +4,7 @@ import org.elasticsearch.gradle.MavenFilteringHack
|
||||
import org.elasticsearch.gradle.test.AntFixture
|
||||
import org.elasticsearch.gradle.test.ClusterConfiguration
|
||||
import org.elasticsearch.gradle.test.RestIntegTestTask
|
||||
import com.carrotsearch.gradle.junit4.RandomizedTestingTask
|
||||
|
||||
import java.lang.reflect.Field
|
||||
|
||||
@ -68,11 +69,14 @@ bundlePlugin {
|
||||
}
|
||||
}
|
||||
|
||||
additionalTest('testRepositoryCreds'){
|
||||
task testRepositoryCreds(type: RandomizedTestingTask) {
|
||||
include '**/RepositoryCredentialsTests.class'
|
||||
include '**/S3BlobStoreRepositoryTests.class'
|
||||
systemProperty 'es.allow_insecure_settings', 'true'
|
||||
classpath = tasks.test.classpath
|
||||
testClassesDirs = tasks.test.testClassesDirs
|
||||
}
|
||||
project.check.dependsOn(testRepositoryCreds)
|
||||
|
||||
test {
|
||||
// these are tested explicitly in separate test tasks
|
||||
|
@ -17,9 +17,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
|
||||
import com.carrotsearch.gradle.junit4.RandomizedTestingTask
|
||||
import org.elasticsearch.gradle.BuildPlugin
|
||||
|
||||
apply plugin: 'elasticsearch.build'
|
||||
apply plugin: 'nebula.optional-base'
|
||||
@ -322,7 +320,6 @@ if (isEclipse == false || project.path == ":server-tests") {
|
||||
group: JavaBasePlugin.VERIFICATION_GROUP,
|
||||
description: 'Multi-node tests',
|
||||
dependsOn: test.dependsOn) {
|
||||
configure(BuildPlugin.commonTestConfig(project))
|
||||
classpath = project.test.classpath
|
||||
testClassesDirs = project.test.testClassesDirs
|
||||
include '**/*IT.class'
|
||||
|
@ -1,5 +1,4 @@
|
||||
import com.carrotsearch.gradle.junit4.RandomizedTestingTask
|
||||
import org.elasticsearch.gradle.BuildPlugin
|
||||
|
||||
evaluationDependsOn(xpackModule('core'))
|
||||
|
||||
@ -25,7 +24,6 @@ task internalClusterTest(type: RandomizedTestingTask,
|
||||
group: JavaBasePlugin.VERIFICATION_GROUP,
|
||||
description: 'Java fantasy integration tests',
|
||||
dependsOn: test.dependsOn) {
|
||||
configure(BuildPlugin.commonTestConfig(project))
|
||||
classpath = project.test.classpath
|
||||
testClassesDirs = project.test.testClassesDirs
|
||||
include '**/*IT.class'
|
||||
|
@ -1,5 +1,4 @@
|
||||
import com.carrotsearch.gradle.junit4.RandomizedTestingTask
|
||||
import org.elasticsearch.gradle.BuildPlugin
|
||||
|
||||
evaluationDependsOn(xpackModule('core'))
|
||||
|
||||
@ -99,7 +98,6 @@ task internalClusterTest(type: RandomizedTestingTask,
|
||||
group: JavaBasePlugin.VERIFICATION_GROUP,
|
||||
description: 'Multi-node tests',
|
||||
dependsOn: test.dependsOn) {
|
||||
configure(BuildPlugin.commonTestConfig(project))
|
||||
classpath = project.test.classpath
|
||||
testClassesDirs = project.test.testClassesDirs
|
||||
include '**/*IT.class'
|
||||
|
@ -1,5 +1,4 @@
|
||||
import com.carrotsearch.gradle.junit4.RandomizedTestingTask
|
||||
import org.elasticsearch.gradle.BuildPlugin
|
||||
|
||||
evaluationDependsOn(xpackModule('core'))
|
||||
|
||||
@ -61,7 +60,6 @@ task internalClusterTest(type: RandomizedTestingTask,
|
||||
group: JavaBasePlugin.VERIFICATION_GROUP,
|
||||
description: 'Multi-node tests',
|
||||
dependsOn: test.dependsOn) {
|
||||
configure(BuildPlugin.commonTestConfig(project))
|
||||
classpath = project.test.classpath
|
||||
testClassesDirs = project.test.testClassesDirs
|
||||
include '**/*IT.class'
|
||||
|
@ -1,5 +1,4 @@
|
||||
import com.carrotsearch.gradle.junit4.RandomizedTestingTask
|
||||
import org.elasticsearch.gradle.BuildPlugin
|
||||
|
||||
evaluationDependsOn(xpackModule('core'))
|
||||
|
||||
@ -34,7 +33,6 @@ task internalClusterTest(type: RandomizedTestingTask,
|
||||
group: JavaBasePlugin.VERIFICATION_GROUP,
|
||||
description: 'Multi-node tests',
|
||||
dependsOn: test.dependsOn) {
|
||||
configure(BuildPlugin.commonTestConfig(project))
|
||||
classpath = project.test.classpath
|
||||
testClassesDirs = project.test.testClassesDirs
|
||||
include '**/*IT.class'
|
||||
|
Loading…
x
Reference in New Issue
Block a user