junit.extensions.abbot
Class ScriptTestSuite

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

public class ScriptTestSuite
extends 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");
             }
         };
     }
 }
 


Constructor Summary
ScriptTestSuite()
          Constructs a suite of tests from all the scripts found in the directory specified by the system property "abbot.testsuite.path".
ScriptTestSuite(Class fixtureClass)
          Constructs a suite of tests from all the scripts found in the current directory.
ScriptTestSuite(Class fixtureClass, String dirname)
          Constructs a suite of tests from all the scripts found in the given directory.
ScriptTestSuite(Class fixtureClass, 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(Class fixtureClass, String dirname, boolean recurse)
          Constructs an ScriptTestSuite from all the scripts in the given directory, recursing if recurse is true.
ScriptTestSuite(String[] filenames)
          Constructs a suite of tests for each script given in the argument list.
 
Method Summary
 boolean accept(File file)
          Return whether to accept the given file.
(package private) static String[] findFilenames(String dirname, boolean recurse)
          Scan for test scripts and return an array of filenames for all scripts found.
protected static List findTestScripts(File dir, List files, boolean recurse)
          Add all test scripts in the given directory, optionally recursing to subdirectories.
 File getDirectory()
           
static void main(String[] args)
          Run all scripts on the command line as a single suite.
 
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
 

Constructor Detail

ScriptTestSuite

public ScriptTestSuite()
Constructs a suite of tests from all the scripts found in the directory specified by the system property "abbot.testsuite.path". The most common use for this constructor would be from an Ant 'junit' task, where the system property is defined for a given run. The suite will recurse directories if "abbot.testsuite.path.recurse" is set to true.


ScriptTestSuite

public ScriptTestSuite(Class fixtureClass)
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(Class fixtureClass,
                       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(Class fixtureClass,
                       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(String[] filenames)
Constructs a suite of tests for each script given in the argument list.


ScriptTestSuite

public ScriptTestSuite(Class fixtureClass,
                       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 File getDirectory()

accept

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


findTestScripts

protected static List findTestScripts(File dir,
                                      List files,
                                      boolean recurse)
Add all test scripts in the given directory, optionally recursing to subdirectories. Returns a list of absolute paths.


findFilenames

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


main

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



Copyright © 2002-2008 Timothy Wall. All Rights Reserved.
Abbot is hosted on

SourceForge