diff --git a/pom.xml b/pom.xml index a396fa4f8c9..cc0f43de08d 100644 --- a/pom.xml +++ b/pom.xml @@ -616,6 +616,8 @@ ${tests.timeoutSuite} ${tests.showSuccess} ${tests.integration} + ${tests.thirdparty} + ${tests.config} ${tests.client.ratio} ${tests.enable_mock_modules} ${tests.assertion.disabled} diff --git a/src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java b/src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java index 67991a896ea..d862a4635e2 100644 --- a/src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java +++ b/src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java @@ -243,6 +243,26 @@ public abstract class ElasticsearchIntegrationTest extends ElasticsearchTestCase public @interface Integration { } + /** + * Property that controls whether ThirdParty Integration tests are run (not the default). + */ + public static final String SYSPROP_THIRDPARTY = "tests.thirdparty"; + + /** + * Annotation for third-party integration tests. + *

+ * These are tests the require a third-party service in order to run. They + * may require the user to manually configure an external process (such as rabbitmq), + * or may additionally require some external configuration (e.g. AWS credentials) + * via the {@code tests.config} system property. + */ + @Inherited + @Retention(RetentionPolicy.RUNTIME) + @Target(ElementType.TYPE) + @TestGroup(enabled = false, sysProperty = ElasticsearchIntegrationTest.SYSPROP_THIRDPARTY) + public @interface ThirdParty { + } + /** node names of the corresponding clusters will start with these prefixes */ public static final String SUITE_CLUSTER_NODE_PREFIX = "node_s"; public static final String TEST_CLUSTER_NODE_PREFIX = "node_t";