You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2010/09/06 20:22:58 UTC

svn commit: r993119 - /sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java

Author: fmeschbe
Date: Mon Sep  6 18:22:58 2010
New Revision: 993119

URL: http://svn.apache.org/viewvc?rev=993119&view=rev
Log:
SLING-1697 Improve logging of single test cases to the logger and to stdout

Modified:
    sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java

Modified: sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java?rev=993119&r1=993118&r2=993119&view=diff
==============================================================================
--- sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java (original)
+++ sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java Mon Sep  6 18:22:58 2010
@@ -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 @@ import org.slf4j.Logger;
 
 /**
  * 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();
     }
 
 }