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

Quick Search    Search Deep

junit.extensions.abbot
Class ScriptTestSuite  view ScriptTestSuite download ScriptTestSuite.java

java.lang.Object
  extended byjunit.framework.TestSuite
      extended byjunit.extensions.abbot.ScriptTestSuite
All Implemented Interfaces:
junit.framework.Test

public class ScriptTestSuite
extends junit.framework.TestSuite

Similar to TestSuite, except that it auto-generates a suite based on test scripts matching certain criteria.

By default, generate a suite of all scripts found in a given directory for which the accept method returns true. Note that there is no guarantee of the order of the scripts.

The ScriptTestSuite constructors which require a class argument provide a means for using custom fixtures derived from ScriptFixture. The default fixture preserves existing environment windows (e.g. the JUnit Swing UI TestRunner) and disposes of all windows generated by the code under test. Derived fixtures may provide arbitrary code in their setUp/tearDown methods (such as install/uninstall a custom security manager, set system properties, etc), the same as you would do in any other derivation of junit.framework.TestCase.

Example 1

Following is a ScriptTestSuite which will aggregate all tests in the directory "src/example", whose filenames begin with "MyCode-" and end with ".xml":

 public class MyCodeTest extends ScriptFixture {
     public MyCodeTest(String name) { super(name); }
     public static Test suite() {
         return new ScriptTestSuite(MyCodeTest.class, "src/example") {
             public boolean accept(File file) {
                 String name = file.getName();
                 return name.startsWith("MyCode-") && name.endsWith(".xml");
             }
         };
     }
 }
 


Field Summary
private  java.io.File primaryDirectory
           
 
Fields inherited from class junit.framework.TestSuite
 
Constructor Summary
ScriptTestSuite(java.lang.Class testClass)
          Constructs a suite of tests from all the scripts found in the current directory.
ScriptTestSuite(java.lang.Class testClass, java.lang.String dirname)
          Constructs a suite of tests from all the scripts found in the given directory.
ScriptTestSuite(java.lang.Class testClass, java.lang.String[] filenames)
          Constructs a suite of tests for each script given in the argument list, using the given class derived from ScriptFixture to wrap each script.
ScriptTestSuite(java.lang.Class testClass, java.lang.String dirname, boolean recurse)
          Constructs an ScriptTestSuite from all the scripts in the given directory, recursing if recurse is true.
ScriptTestSuite(java.lang.String[] filenames)
          Constructs a suite of tests for each script given in the argument list.
 
Method Summary
 boolean accept(java.io.File file)
          Return whether to accept the given file.
(package private) static java.lang.String[] findFilenames(java.lang.String dirname, boolean recurse)
          Scan for test scripts and return an array of filenames for all scripts found.
protected static java.util.List findTestScripts(java.io.File dir, java.util.List files, boolean recurse)
          Add all test scripts in the given directory, optionally recursing to subdirectories.
 java.io.File getDirectory()
           
static void main(java.lang.String[] args)
          Run all scripts on the command line as a single suite.
private  junit.framework.Test warning(java.lang.String message)
          Returns a test which will fail and log a warning message.
 
Methods inherited from class junit.framework.TestSuite
addTest, addTestSuite, countTestCases, createTest, getName, getTestConstructor, run, runTest, setName, testAt, testCount, tests, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

primaryDirectory

private java.io.File primaryDirectory
Constructor Detail

ScriptTestSuite

public ScriptTestSuite(java.lang.Class testClass)
Constructs a suite of tests from all the scripts found in the current directory. Does not recurse to subdirectories. The Class argument must be a subclass of junit.extensions.abbot.ScriptFixture.


ScriptTestSuite

public ScriptTestSuite(java.lang.Class testClass,
                       java.lang.String dirname)
Constructs a suite of tests from all the scripts found in the given directory. Does not recurse to subdirectories. The Class argument must be a subclass of junit.extensions.abbot.ScriptFixture.


ScriptTestSuite

public ScriptTestSuite(java.lang.Class testClass,
                       java.lang.String dirname,
                       boolean recurse)
Constructs an ScriptTestSuite from all the scripts in the given directory, recursing if recurse is true. The Class argument must be a class derived from junit.extensions.abbot.ScriptFixture.


ScriptTestSuite

public ScriptTestSuite(java.lang.String[] filenames)
Constructs a suite of tests for each script given in the argument list.


ScriptTestSuite

public ScriptTestSuite(java.lang.Class testClass,
                       java.lang.String[] filenames)
Constructs a suite of tests for each script given in the argument list, using the given class derived from ScriptFixture to wrap each script.

Method Detail

getDirectory

public java.io.File getDirectory()

accept

public boolean accept(java.io.File file)
Return whether to accept the given file. The default implementation omits common backup files.


warning

private junit.framework.Test warning(java.lang.String message)
Returns a test which will fail and log a warning message.


findTestScripts

protected static java.util.List findTestScripts(java.io.File dir,
                                                java.util.List files,
                                                boolean recurse)
Add all test scripts in the given directory, optionally recursing to subdirectories.


findFilenames

static java.lang.String[] findFilenames(java.lang.String dirname,
                                        boolean recurse)
Scan for test scripts and return an array of filenames for all scripts found.


main

public static void main(java.lang.String[] args)
Run all scripts on the command line as a single suite.