You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2013/06/05 10:59:13 UTC
svn commit: r1489749 - in
/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing:
LoggingSuite.java TestAll.java
Author: bdelacretaz
Date: Wed Jun 5 08:59:13 2013
New Revision: 1489749
URL: http://svn.apache.org/r1489749
Log:
SLING-2903 - use JUnit4TestAdapter to accept JUnit4 style tests as well
Modified:
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/LoggingSuite.java
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.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=1489749&r1=1489748&r2=1489749&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 Wed Jun 5 08:59:13 2013
@@ -16,10 +16,7 @@
*/
package org.apache.sling.launchpad.testing;
-import java.util.Set;
-
import junit.framework.Test;
-import junit.framework.TestCase;
import junit.framework.TestResult;
import junit.framework.TestSuite;
@@ -38,8 +35,8 @@ class LoggingSuite extends TestSuite {
private int lastFailures;
- LoggingSuite(Set<Class<TestCase>> classSet, String name, Logger logger) {
- super(classSet.toArray(new Class[classSet.size()]), name);
+ LoggingSuite(String name, Logger logger) {
+ super(name);
this.logger = logger;
}
@@ -51,9 +48,7 @@ class LoggingSuite extends TestSuite {
@Override
public void runTest(Test test, TestResult result) {
- final String name = (test instanceof TestSuite)
- ? ((TestSuite) test).getName()
- : test.getClass().getName();
+ final String name = getName(test);
final String startMessage = String.format("Running %s", name);
System.out.println(startMessage);
logger.info(startMessage);
@@ -72,5 +67,9 @@ class LoggingSuite extends TestSuite {
lastFailures = result.failureCount();
lastErrors = result.errorCount();
}
+
+ private String getName(Test t) {
+ return (t instanceof TestSuite) ? ((TestSuite) t).getName() : t.toString();
+ }
}
Modified: sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java?rev=1489749&r1=1489748&r2=1489749&view=diff
==============================================================================
--- sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java (original)
+++ sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java Wed Jun 5 08:59:13 2013
@@ -16,13 +16,6 @@
*/
package org.apache.sling.launchpad.testing;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Modifier;
@@ -31,21 +24,28 @@ import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.regex.Pattern;
-/**
- *
- */
-public class TestAll extends TestCase {
+import junit.framework.JUnit4TestAdapter;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import static org.junit.Assert.fail;
+import org.junit.runner.RunWith;
+import org.junit.runners.AllTests;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/** Collect our tests and run them with our LoggingSuite */
+ @RunWith(AllTests.class)
+public class TestAll {
private static final Logger LOGGER = LoggerFactory.getLogger(TestAll.class);
@SuppressWarnings("unchecked")
- public static Test suite() {
+ public static TestSuite suite() {
final ClassLoader sysClassLoader = TestAll.class.getClassLoader();
final List<String> matchingClasses = new ArrayList<String>();
// Get the URLs
@@ -63,24 +63,27 @@ public class TestAll extends TestCase {
e.printStackTrace();
}
}
- final Set<Class<TestCase>> classSet = new HashSet<Class<TestCase>>();
+
+ final TestSuite suite = new LoggingSuite("Sling Integration Tests matching " + testPattern, LOGGER);
+ int counter=0;
for (String classFile : matchingClasses) {
String className = classFileToName(classFile);
try {
final Class<TestCase> c = (Class<TestCase>) sysClassLoader.loadClass(className);
if (!c.isInterface() && !Modifier.isAbstract(c.getModifiers())) {
+ suite.addTest(new JUnit4TestAdapter(c));
+ counter++;
LOGGER.info("Added " + className);
- classSet.add(c);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
- LOGGER.info(classSet.size() + " test classes found using Pattern "
- + testRegex);
- TestSuite suite = new LoggingSuite(classSet,
- "Sling Integration Tests matching " + testPattern, LOGGER);
-
+
+ if(counter==0) {
+ fail("No test classes found in classpath using Pattern " + testRegex);
+ }
+ LOGGER.info("{} test classes found using Pattern {}", counter, testRegex);
return suite;
}