SLING-1697 Improve logging of single test cases to the logger and to stdout
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@993119 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java b/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java
index 48774af..658b3fb 100644
--- a/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java
+++ b/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java
@@ -5,9 +5,9 @@
* 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
@@ -21,9 +21,9 @@
* 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
@@ -43,23 +43,50 @@
/**
* Simple TestSuite subclass which logs when each test is starting.
- *
*/
class LoggingSuite extends TestSuite {
private Logger logger;
+ private int lastRuns;
+
+ private int lastErrors;
+
+ private int lastFailures;
+
LoggingSuite(Set<Class<TestCase>> classSet, String name, Logger logger) {
super(classSet.toArray(new Class[classSet.size()]), name);
this.logger = logger;
}
@Override
+ public void run(TestResult result) {
+ // result.addListener(new SlingTestListener());
+ super.run(result);
+ }
+
+ @Override
public void runTest(Test test, TestResult result) {
- if (test instanceof TestSuite) {
- logger.info("Starting test run for class " + ((TestSuite) test).getName());
- }
+ final String name = (test instanceof TestSuite)
+ ? ((TestSuite) test).getName()
+ : test.getClass().getName();
+ final String startMessage = String.format("Running %s", name);
+ System.out.println(startMessage);
+ logger.info(startMessage);
+
super.runTest(test, result);
+
+ final String endMessage = String.format(
+ "Tests run: %d, Failures: %d, Errors: %d, Skipped: %d",
+ result.runCount() - lastRuns, result.failureCount() - lastFailures,
+ result.errorCount() - lastErrors,
+ test.countTestCases() - result.runCount() + lastRuns);
+ System.out.println(endMessage);
+ logger.info(endMessage);
+
+ lastRuns = result.runCount();
+ lastFailures = result.failureCount();
+ lastErrors = result.errorCount();
}
}