Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: junit/extensions/abbot/ScriptTestCollector.java


1   package junit.extensions.abbot;
2   
3   import junit.runner.LoadingTestCollector;
4   import junit.runner.TestCaseClassLoader;
5   
6   import abbot.Log;
7   
8   /** Collects all available classes derived from ScriptTestCase in the current
9    * classpath.
10   */
11  
12  public class ScriptTestCollector extends LoadingTestCollector {
13      private ClassLoader loader;
14  
15      public ScriptTestCollector() {
16          loader = Thread.currentThread().getContextClassLoader();
17          if (loader == null)
18              loader = new TestCaseClassLoader();
19      }
20  
21      protected boolean isTestClass(String classFileName) {
22          Log.debug("Checking " + classFileName);
23          if (super.isTestClass(classFileName)) {
24              try {
25                  Class testClass = getClassFromFile(classFileName);
26                  return testClass != null
27                      && (ScriptFixture.class.isAssignableFrom(testClass)
28                          || ScriptTestSuite.class.isAssignableFrom(testClass));
29              }
30              catch(ClassNotFoundException expected) {
31              }
32              catch(NoClassDefFoundError notFatal) {
33              }
34          }
35          return false;
36      }
37  
38      private Class getClassFromFile(String classFileName) 
39          throws ClassNotFoundException {
40          String className = classNameFromFile(classFileName);
41          return loader.loadClass(className);
42      }
43  }