diff --git a/pom.xml b/pom.xml index 9ed858e096d..6e09ef54182 100644 --- a/pom.xml +++ b/pom.xml @@ -207,21 +207,24 @@ org.testng testng - 6.3.1 + 6.5.2 test + + + org.hamcrest + hamcrest-core + + + junit + junit + + org.hamcrest - hamcrest-core - 1.3.RC2 - test - - - - org.hamcrest - hamcrest-library - 1.3.RC2 + hamcrest-all + 1.3 test @@ -274,14 +277,22 @@ org.apache.maven.plugins maven-surefire-plugin - 2.11 + 2.12 **/*Tests.java + + + listener + org.elasticsearch.test.TestNGLoggingListener + + -Xmx512m -Des.logger.prefix= - ${test.local} + ${env.ES_TEST_LOCAL} + ${env.ES_TEST_COMPRESS} + ${env.ES_TEST_COMPRESS} diff --git a/src/test/java/org/elasticsearch/test/TestNGLoggingListener.java b/src/test/java/org/elasticsearch/test/TestNGLoggingListener.java new file mode 100644 index 00000000000..f0f5c53b315 --- /dev/null +++ b/src/test/java/org/elasticsearch/test/TestNGLoggingListener.java @@ -0,0 +1,76 @@ +/* + * Licensed to ElasticSearch and Shay Banon under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. ElasticSearch licenses this + * file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.test; + +import org.elasticsearch.common.logging.ESLogger; +import org.elasticsearch.common.logging.ESLoggerFactory; +import org.testng.ITestContext; +import org.testng.ITestListener; +import org.testng.ITestResult; + +/** + */ +public class TestNGLoggingListener implements ITestListener { + + private ESLogger logger = ESLoggerFactory.getLogger("test"); + + private String extractTestName(ITestResult result) { + String testName = result.getInstanceName(); + if (testName.startsWith("org.elasticsearch.")) { + testName = testName.substring("org.elasticsearch.".length()); + } + if (testName.startsWith("test.")) { + testName = testName.substring("test.".length()); + } + return testName + "#" + result.getName(); + } + + @Override + public void onTestStart(ITestResult result) { + logger.info("==> Test Starting [{}]", extractTestName(result)); + } + + @Override + public void onTestSuccess(ITestResult result) { + logger.info("==> Test Success [{}]", extractTestName(result)); + } + + @Override + public void onTestFailure(ITestResult result) { + logger.error("==> Test Success [{}]", extractTestName(result)); + } + + @Override + public void onTestSkipped(ITestResult result) { + logger.info("==> Test Skipped [{}]", extractTestName(result)); + } + + @Override + public void onTestFailedButWithinSuccessPercentage(ITestResult result) { + } + + @Override + public void onStart(ITestContext context) { + } + + @Override + public void onFinish(ITestContext context) { + } +}