Sophie

Sophie

distrib > Fedora > 13 > i386 > by-pkgid > fffbd1c50e8102746e8aec13b7d53ba8 > files > 11

castor-doc-0.9.5-5.fc12.1.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Using the Castor Testing Frameworl</title><link rel="stylesheet" href="default.css"></head><body bgcolor="#ffffff" link="#6763a9" vlink="#6763a9" topmargin="0" bottommargin="0" leftmargin="0" marginheight="0" marginwidth="0"><a name="top"></a><table border="0" cellpadding="0" cellspacing="0" height="400"><tr><td width="10" valign="top" align="left" bgcolor="#7270c2"><img src="images/dotTrans.gif" width="1" height="1" border="0"></td><td width="115" valign="top" align="left" bgcolor="#7270c2"><img src="images/dotTrans.gif" width="1" height="1" border="0"></td><td width="7" valign="top" align="left"><img src="images/dotTrans.gif" border="0" width="1" height="1"></td><td width="70" valign="top" align="left"><img src="images/dotTrans.gif" width="70" height="6" border="0"></td><td width="400" valign="top" align="left"><img src="images/top_2.gif" width="400" height="6" border="0"></td><td width="120" valign="top" align="left"><img src="images/line_purple.gif" width="120" height="6" border="0"></td></tr><tr><td width="10" bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" border="0" width="1" height="1"></td><td width="115" bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" border="0" width="1" height="1"></td><td width="7" bgcolor="#ffffff" valign="top" align="left"></td><td width="70" valign="top" align="left"><img src="images/dotTrans.gif" width="1" height="1" border="0"></td><td width="400" valign="middle" align="left"><a href="http://www.exolab.org"><span class="menuTopOff">ExoLab</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://openejb.sf.net"><span class="menuTopOff">OpenEJB</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://openjms.sf.net"><span class="menuTopOff">OpenJMS</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://openorb.sf.net"><span class="menuTopOff">OpenORB</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://castor.exolab.org"><span class="menuTopOn">Castor</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://tyrex.sf.net"><span class="menuTopOff">Tyrex</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="images/dotTrans.gif" width="1" height="2" border="0"></td><td width="120" height="20" valign="top" align="left">&nbsp;</td></tr><tr><td width="10" bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" width="10" height="3" border="0"></td><td width="115" bgcolor="#7270c2" valign="top" align="right"><img src="images/line_sm.gif" width="105" height="3" border="0"></td><td width="7" bgcolor="#a9a5de" valign="top" align="left"><img src="images/line_sm.gif" width="7" height="3" border="0"></td><td width="70" valign="top" align="left"><img src="images/line_light.gif" width="70" height="3" border="0"></td><td width="400" valign="top" align="left"><img src="images/line_light.gif" width="400" height="3" border="0"></td><td width="120" valign="top" align="left"><img src="images/dotTrans.gif" border="0" width="1" height="1"></td></tr><tr><td bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" width="10" height="10" border="0"></td><td width="115" bgcolor="#7270c2" valign="top" align="left"><img src="images/dotTrans.gif" width="1" height="2" border="0"><br><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">Main</span></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="index.html"><span class="subMenuOff">Home</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="download.html"><span class="subMenuOff">Download</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="api/overview-summary.html"><span class="subMenuOff">API</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="schema.html"><span class="subMenuOff">Schema</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="lists.html"><span class="subMenuOff">Mailing Lists</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="cvs.html"><span class="subMenuOff">CVS / Bugzilla</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="support.html"><span class="subMenuOff">Support</span></a></td></tr></table><br><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">XML</span></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="xml-framework.html"><span class="subMenuOff">Using XML</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="sourcegen.html"><span class="subMenuOff">Source Generator</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="xmlschema.html"><span class="subMenuOff">Schema Support</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="xml-mapping.html"><span class="subMenuOff">XML Mapping</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="xml-faq.html"><span class="subMenuOff">XML FAQ</span></a></td></tr></table><br><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">JDO</span></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="jdo.html"><span class="subMenuOff">Using JDO</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="database-conf.html"><span class="subMenuOff">JDO Config</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="types.html"><span class="subMenuOff">Types</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="jdo-mapping.html"><span class="subMenuOff">JDO Mapping</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="jdo-faq.html"><span class="subMenuOff">JDO FAQ</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="castor-one.html"><span class="subMenuOff">Other Features</span></a></td></tr></table><br><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">Advanced JDO</span></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="oql.html"><span class="subMenuOff">OQL</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="locking.html"><span class="subMenuOff">Trans. &amp; Locks</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="design-persist.html"><span class="subMenuOff">Design</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="key-generator.html"><span class="subMenuOff">KeyGen</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="long-transact.html"><span class="subMenuOff">Long Trans.</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="nested-attr.html"><span class="subMenuOff">Nested Attrs.</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="pooling.html"><span class="subMenuOff">Pooling Examples</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="postgresql-blobs.html"><span class="subMenuOff">Blobs and PostgreSQL</span></a></td></tr></table><br><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">More</span></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="presentations.html"><span class="subMenuOff">Presentations</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="examples.html"><span class="subMenuOff">The Examples</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="extras.html"><span class="subMenuOff">Extras and 3rd Party Tools</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="test-framework.html"><span class="subMenuOff">Test Framework -- JDO</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="ctf.html"><span class="subMenuOff">Test Framework -- XML</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="conf-lib.html"><span class="subMenuOff">Configuration</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="tips-tricks.html"><span class="subMenuOff">Tips &amp; Tricks</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="javadoc/overview-summary.html"><span class="subMenuOff">Full JavaDoc</span></a></td></tr></table><br><table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><span class="subMenuOn">About</span></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="license.html"><span class="subMenuOff">License</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="contributors.html"><span class="subMenuOff">Contributors</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="status.html"><span class="subMenuOff">Status, Todo</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="changelog.html"><span class="subMenuOff">Changelog</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="library.html"><span class="subMenuOff">Library</span></a></td></tr><tr><td valign="top" align="left">&nbsp;&nbsp;<a href="contacts.html"><span class="subMenuOff">Contact</span></a></td></tr></table><br></td><td width="7" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</td><td width="70" valign="top" align="left">&nbsp;</td><td rowspan="4" width="400" valign="top"><table cols="2" rows="2" border="0" cellpadding="0" cellspacing="0" width="400"><tr><td valign="top" align="left"><br><img border="0" height="34" hspace="0" src="images/castor.gif" vspace="0" width="115"><br><img border="0" height="10" hspace="0" src="images/dotTrans.gif"></td><td width="120" height="5" valign="top" align="right"><a href="http://www.exolab.org"><img src="images/logo_exolab.gif" hspace="0" vspace="10" width="77" height="20" border="0"></a></td></tr></table><p></p><p></p><br><span class="header">The Castor Testing Framework</span><br><br><p><span class="bodyGrey">For a more detailed version of the Castor Testing Framework documentation, please download the        <a href="./CTFdoc.pdf">Castor Testing Framework User Document(PDF).</a></span></p><span class="bodyGrey"><a href="#Introduction">Introduction</a><br></span><span class="bodyGrey"><a href="#Test-Descriptor">Test Descriptor</a><br></span><span class="bodyGrey"><a href="#Header">Header</a><br></span><span class="bodyGrey"><a href="#MarshallingTest">MarshallingTest</a><br></span><span class="bodyGrey"><a href="#SourceGeneratorTest">SourceGeneratorTest</a><br></span><span class="bodyGrey"><a href="#UnitTestCase">UnitTestCase</a><br></span><span class="bodyGrey"><a href="#Listener">Listener</a><br></span><span class="bodyGrey"><a href="#Implementing-CastorTestable">Implementing CastorTestable</a><br></span><span class="bodyGrey"><a href="#dumpFields">dumpFields</a><br></span><span class="bodyGrey"><a href="#randomizeFields">randomizeFields</a><br></span><span class="bodyGrey"><a href="#Running-the-tests">Running the tests</a><br></span><span class="bodyGrey"><a href="#Command-Line-options">Command Line options</a><br></span><span class="bodyGrey"><a href="#Building-the-CTF">Building the CTF</a><br></span><br><a name="Introduction"><h2>Introduction</h2></a>        <p><span class="bodyGrey">One of the main processes in the life cycle of software is the 'validation and verification' process.           It is a control process which checks that the requisites functions are finally obtained and eliminates faults.           It is also known as the non-popular 'testing' process.           The reliability and the integrity of a software project are based on tests.           Being 'open-source' does not mean avoiding writing tests thus we have chosen to give to Castor an           Automation Testing Framework called the Castor Testing Framework (referenced as CTF).          This framework is built with <a href="http://www.junit.org">JUnit</a> and will help           Castor developers but also users in several ways:          <table border="0" cellpadding="2" cellspacing="2"><tr><td colspan="2" height="5"></td></tr><span class="bodyGrey">              <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">Improve Castor reliability.</span></td></tr>              <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">Monitoring bugs will be easy since writing bug reports will be easy</span></td></tr>              <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">Building an archive of fixed bugs</span></td></tr>              <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">Test writing is easier.</span></td></tr>          </span></table>       </span></p>     <a name="Test-Descriptor"><h2>Test Descriptor</h2></a>        <p><span class="bodyGrey">           CTF test case can be stored in a directory or in a jar. Test case must contain the <span class="bodyGrey"><pre>TestDescriptor.xml</pre></span>           file. This file is located under the META-INF directory when using a jar file or            directly under the directory that contains the test case files.            This is a summary of the test cases contained in the directory or in the jar file.           The TestDescriptor can be divided as follows:        </span></p>        <a name="Header"><h3>Header</h3></a>           <table border="1" cellspacing="0">              <tr>                <th align="center">Tag</th><th>Description</th><th>Optional?</th>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Name</span></td>                <td><span class="bodyGrey">The name of the test</span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Comment</span></td>                <td><span class="bodyGrey">Some comment on the test</span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Category</span></td>                <td><span class="bodyGrey">The category in which this test falls:                    <table border="0" cellpadding="2" cellspacing="2"><tr><td colspan="2" height="5"></td></tr><span class="bodyGrey">                       <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">basic capability</span></td></tr>                       <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">special case </span></td></tr>                    </span></table>                 </span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">BugFix</span></td>                <td><span class="bodyGrey">                   Used to report a bug and keep track of it                   It is defined as follows:                   <table border="0" cellpadding="2" cellspacing="2"><tr><td colspan="2" height="5"></td></tr><span class="bodyGrey">                      <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">Name of the reporter</span></td></tr>                      <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">Date of the report</span></td></tr>                      <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">Name of the 'fixer'</span></td></tr>                      <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey">Date of the fix</span></td></tr>                   </span></table>                </span></td>                <td><span class="bodyGrey">Optional</span></td>              </tr>           </table>                           <a name="MarshallingTest"><h3>MarshallingTest</h3></a>           <table border="1" cellspacing="0">              <tr>                <th align="center">Tag</th><th>Attribute</th><th>Description</th><th>Optional?</th>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Root_Object</span></td>                <td><span class="bodyGrey">                   <table border="0" cellpadding="2" cellspacing="2"><tr><td colspan="2" height="5"></td></tr><span class="bodyGrey">                     <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey"><i>dump</i>: a boolean indicating  that dumpFields() method has been implemented in Root_Object.</span></td></tr>                     <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey"><i>random</i>: a boolean indicating  that randomizeFields() method has been implemented in Root_Object.</span></td></tr>                   </span></table>                </span></td>                <td><span class="bodyGrey">The qualified name of the Root object in the generated object model</span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Mapping_File</span></td>                <td><span class="bodyGrey">N/A</span></td>                <td><span class="bodyGrey">The name of the mapping file to (if any)</span></td>                <td><span class="bodyGrey">Optional</span></td>              </tr>             </table>                              <a name="SourceGeneratorTest"><h3>SourceGeneratorTest</h3></a>           <table border="1" cellspacing="0">              <tr>                <th align="center">Tag</th><th>Attribute</th><th>Description</th><th>Optional?</th>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Schema</span></td>                <td align="center"><span class="bodyGrey" align="center">N/A</span></td>                <td><span class="bodyGrey">The name of the schema form which we generate sources</span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Property_File</span></td>                <td align="center"><span class="bodyGrey" align="center">N/A</span></td>                <td><span class="bodyGrey">The name of the Source Generator property file to use</span></td>                <td><span class="bodyGrey">Optional</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">FieldInfoFactory</span></td>                <td align="center"><span class="bodyGrey" align="center">N/A</span></td>                <td><span class="bodyGrey">The collection type to use (Vector or ArrayList)</span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Root_Object</span></td>                <td><span class="bodyGrey">                   <table border="0" cellpadding="2" cellspacing="2"><tr><td colspan="2" height="5"></td></tr><span class="bodyGrey">                     <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey"><i>dump</i>: a boolean indicating  that dumpFields() method has been implemented in Root_Object.</span></td></tr>                     <tr><td align="left" valign="top" width="10">-</td><td align="left" valign="top"><span class="bodyGrey"><i>random</i>: a boolean indicating  that randomizeFields() method has been implemented in Root_Object.</span></td></tr>                   </span></table>                </span></td>                <td><span class="bodyGrey">The qualified name of the Root object in the generated object model</span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>             </table>                   <a name="UnitTestCase"><h3>UnitTestCase</h3></a>           <table border="1" cellspacing="0">              <tr>                <th align="center">Tag</th><th>Description</th><th>Optional?</th>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Name</span></td>                <td><span class="bodyGrey">The name of the specific test</span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Input</span></td>                <td><span class="bodyGrey">The name of the input file used to create a specific Object Model while unmarshalling this file</span></td>                <td><span class="bodyGrey">Optional</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Output</span></td>                <td><span class="bodyGrey">The name of the output file which can be seen as a 'gold file'</span></td>                <td><span class="bodyGrey">Optional</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">ObjectBuilder</span></td>                <td><span class="bodyGrey">The name of the class used to instantiate the Object Model used</span></td>                <td><span class="bodyGrey">Optional</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Failure</span></td>                <td><span class="bodyGrey">A boolean that indicates if set to true that the test case intents to fail (Exception thrown)</span></td>                <td><span class="bodyGrey">Optional</span></td>              </tr>             </table>                <a name="Listener"><h2>Listener</h2></a>           <table border="1" cellspacing="0">              <tr>                <th align="center">Tag</th><th>Description</th><th>Optional?</th>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">ClassName</span></td>                <td><span class="bodyGrey">The name of the class to use for MarshalListener and/or UnmarshalListener</span></td>                <td><span class="bodyGrey">Required</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">Type</span></td>                <td><span class="bodyGrey">Marshal, Unmarshal or Both.  Indicate how to use the provided ClassName.</span></td>                <td><span class="bodyGrey">Optional, defaults to &quot;Both&quot;.</span></td>              </tr>              <tr>                <td align="center"><span class="bodyGrey" align="center">GoldFile</span></td>                <td><span class="bodyGrey">The name of the output file which can be seen as a 'gold file'</span></td>                <td><span class="bodyGrey">Optional</span></td>              </tr>              </table>           <a name="Implementing-CastorTestable"><h2>Implementing CastorTestable</h2></a>           <p><span class="bodyGrey">As you  may have noticed, while testing the SourceGenerator or the Marshalling Framework you have to provide               the name of the 'Root Object' of your Object Model.              The Root Object simply represents the mapping of the root element of the XML document.              In order to be correctly used in CTF, the provided Root Object must implement               the interface <span class="bodyGrey"><pre>org.exolab.castor.tests.framework.CastorTestable</pre></span>.              Implementing this interface is simply implementing two methods: dumpFields() and randomizeFields().</span></p>                            <a name="dumpFields"><h3>dumpFields</h3></a>                 <p><span class="bodyGrey"> Here is the JavaDoc of the method:                 <span class="bodyBlack"><pre>
    /**
     * Return a recursive dump of the content of the
     * object fields in a user readable format. 
     * This is used to retrieve the state of the object if
     * castor fail to marshal the object for any reason.
     *
     * We don't rely on the toString() function as it could have
     * been already implemented with another semantic.
     */

                </pre></span>                 </span></p>                                          <a name="randomizeFields"><h3>randomizeFields</h3></a>                  <p><span class="bodyGrey"> Here is the JavaDoc of the method:                  <span class="bodyBlack"><pre>
    /**
     * The instance of the object will randomize the content 
     * of its field. This is used to create an instance 
     * of the object model without having to
     * unmarshal anything.
     */ 

                 </pre></span>                  </span></p>                         <p><span class="bodyGrey">In order to tell the CTF that one (or both) of these methods is implemented you have to set the attributes 'dump' and 'random'             to true in the Root_Object element: </span></p>            <span class="bodyGrey"><pre>&lt;Root_Object dump='true' random='true'&gt;Root.java&lt;/Root_Object&gt;</pre></span>        <a name="Running-the-tests"><h2>Running the tests</h2></a>        <p><span class="bodyGrey">You can run the tests by using the script <span class="bodyGrey"><pre>CTFRun.bat</pre></span> under Windows platform or <span class="bodyGrey"><pre>CTFRun.sh</pre></span>           under Linux/UNIX platform.           CTFRun path of a Castor Testing Framework test (JAR or Directory).</span></p>           <a name="Command-Line-options"><h3>Command Line options</h3></a>              <table border="1" cellspacing="0">                <tr>                  <th align="center">Option</th><th>Args</th><th>Description</th><th>Optional?</th>                </tr>                <tr>                   <td><span class="bodyGrey"><i>-verbose</i></span></td>                   <td align="center"><span class="bodyGrey" align="center">N/A</span></td>                   <td><span class="bodyGrey">Give detailed information on the execution of each test.</span></td>                   <td><span class="bodyGrey">Optional</span></td>                </tr>                <tr>                   <td><span class="bodyGrey"><i>-text</i></span></td>                   <td align="center"><span class="bodyGrey" align="center">N/A</span></td>                   <td><span class="bodyGrey">Run the tests without using the JUnit GUI.</span></td>                   <td><span class="bodyGrey">Optional</span></td>                </tr>                <tr>                   <td><span class="bodyGrey"><i>-printStack</i></span></td>                   <td align="center"><span class="bodyGrey" align="center">N/A</span></td>                   <td><span class="bodyGrey">Run the tests by dumping the stack trace when an exception occurs.</span></td>                   <td><span class="bodyGrey">Optional</span></td>                </tr>                <tr>                   <td><span class="bodyGrey"><i>-seed</i></span></td>                   <td><span class="bodyGrey">int value</span></td>                   <td><span class="bodyGrey">Specifies the use of a specific seed for the pseudo-random generator.</span></td>                   <td><span class="bodyGrey">Optional</span></td>                </tr>              </table>                     <p><span class="bodyGrey">For instance to run all the tests from the MasterTestSuite:             <span class="bodyGrey"><pre>CTFRun -verbose .src/tests/MasterTestSuite/xml/SourceGenerator</pre></span>             This command will execute in GUI mode (default mode) all the test cases written and will print detailed messages              about the execution of the tests.           </span></p>        <a name="Building-the-CTF"><h2>Building the CTF</h2></a>           <p><span class="bodyGrey">Before trying to launch the test cases, please make sure that the CTF is compiled. To do so simply              build the Castor test cases by launching:              <span class="bodyGrey"><pre>build tests</pre></span>              You can also build the CTF jar:              <span class="bodyGrey"><pre>build CTFjar</pre></span>                      </span></p>        </td></tr><tr height="5"><td width="10" height="5" bgcolor="#7270c2" valign="top" align="left">&nbsp;</td><td width="115" height="5" bgcolor="#7270c2" valign="top"><img src="images/dotTrans.gif" width="1" height="15" border="0"><br><img src="images/line_sm.gif" width="105" height="3" border="0" align="right"></td><td width="7" height="5" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</td><td width="70" height="5" valign="top" align="left">&nbsp;</td><td width="120" height="5" valign="top" align="left">&nbsp;</td></tr><tr><td width="10" height="5" bgcolor="#7270c2" valign="top" align="left">&nbsp;</td><td width="115" bgcolor="#7270c2" valign="top" align="left"></td><td width="7" bgcolor="#a9a5de" valign="top" align="left"><img src="images/dotTrans.gif" width="1" height="25" border="0"></td><td width="70" valign="top" align="left"><img src="images/dotTrans.gif" width="1" height="25" border="0"></td><td width="120" valign="top" align="left">&nbsp;</td></tr><tr height="5"><td width="10" rowspan="2" height="100%" bgcolor="#7270c2" valign="bottom" align="left"><img src="images/stripes1.gif" width="10" height="125" border="0"></td><td width="115" rowspan="2" height="100%" bgcolor="#7270c2" valign="bottom" align="left"><img src="images/stripe105.gif" width="105" height="125" border="0"></td><td width="7" rowspan="2" height="100%" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</td><td width="70" height="100%" valign="top" align="left">&nbsp;</td><td width="120" height="100%" valign="top" align="left">&nbsp;</td></tr><tr height="5"><td width="70" height="25" valign="top" align="left">&nbsp;</td><td width="400" height="25" valign="bottom" align="left"><br><br><img src="images/line_light.gif" border="0" width="400" height="3"><br><p></p><span class="bodyGrey"><small><notice>     Copyright ) 1999-2003 <a href="http://www.exolab.org">ExoLab Group</a>.  All rights reserved.   </notice><br>&nbsp;<br></small><small><notice>     Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered     trademarks of Sun Microsystems, Inc. in the United States and in other     countries. XML, XML Schema, XSLT and related standards are trademarks or registered     trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web     Consortium. All other product names mentioned herein are trademarks of their respective     owners.   </notice><br>&nbsp;<br></small></span><p></p>&nbsp;</td><td width="120" height="25" valign="top" align="left">&nbsp;</td></tr></table></body></html>