Version 2

    Added configuration to TestDriver which can be overriden by extending test drivers:

       /**
        * How long to wait for test results to be returned from the client(s).  If goes longer than the
        * specified limit, will throw an exception and kill the running test cases.  Default value is
        * RESULTS_TIMEOUT.
        * @return
        */
       protected long getResultsTimeout()
       {
          return RESULTS_TIMEOUT;
       }
    
       /**
        * How long for the server test case to wait for tear down message.  If exceeds timeout,
        * will throw exception.  The default value is TEARDOWN_TIMEOUT.
        * @return
        */
       protected long getTearDownTimeout()
       {
          return TEARDOWN_TIMEOUT;
       }
    
       /**
        * How long to allow each of the test cases to run their tests.  If exceeds this timeout
        * will throw exception and kill tests.  The default value is RUN_TEST_TIMEOUT.
        * @return
        */
       protected long getRunTestTimeout()
       {
          return RUN_TEST_TIMEOUT;
       }
    
       /**
        * Returns the classpath to be added to the classpath used to start the client tests.
        * Default return is null, which means no extra classpath will be added.
        * @return
        */
       protected String getExtendedClientClasspath()
       {
          return null;
       }
    
       /**
        * Returns the classpath to be added to the classpath used to start the client tests.
        * Default return is null, which means no extra classpath will be added.
        * @return
        */
       protected String getExtendedServerClasspath()
       {
          return null;
       }
    
       /**
        * Returns the VM arguments to be passed to the vm when creating the client test cases (actually their harness).
        * The default value is null.
        * @return
        */
       protected String getClientJVMArguments()
       {
          return null;
       }
    
       /**
        * Returns the VM arguments to be passed to the vm when creating the server test cases (actually their harness).
        * The default value is null.
        * @return
        */
       protected String getServerJVMArguments()
       {
          return null;
       }
    

     

    Gotchas

     

    If see something weird like:

     

    junit.framework.AssertionFailedError: Method "Yourclass.class" not found

     

    check to make sure you do not have a constructor in your test class that looks like:

     

     

    public Yourclass(String name)

    {

         super(NAME);  // where NAME = "Yourclass.class"

    }

    }}