Jump to: navigation, search

Difference between revisions of "EclipseLink/Development/Testing/foundation"

m (Eclipse JUnit)
(Eclipse JUnit)
Line 25: Line 25:
  
 
Ensure the following (Java | Build Path | Classpath Variables) are set:
 
Ensure the following (Java | Build Path | Classpath Variables) are set:
* JAVA_TOOLS_LIB variable has been mapped to your JDK tools.jar
+
* TOOLS_LIB variable has been mapped to your JDK tools.jar
 
* ORACLE_JDBC_LIB variable has been mapped to your database's JDBC driver (compile-time for extension project)
 
* ORACLE_JDBC_LIB variable has been mapped to your database's JDBC driver (compile-time for extension project)
 
* JDBC_LIB variable has been mapped to your database's JDBC driver (vendor-agnostic driver)
 
* JDBC_LIB variable has been mapped to your database's JDBC driver (vendor-agnostic driver)

Revision as of 12:03, 2 January 2008

Running the foundation LRG

The foundation tests consist of an LRG (long regression), SRG (short regression), and various non-classified tests (non-LRG). If any code was changed in eclipselink.core it is recommended to run the LRG. If minimal changes were made the SRG is sufficient. Depending on what was changed, running some of the non-LRG tests may also be desirable.

There are several ways to run the tests.

  • ant
  • Eclipse JUnit
  • Testing Browser

Ant

The eclipselink.core.test/build.xml contains several ant targets for testing. The test target will run the LRG. Ensure that the eclipselink.core.test/test.properties file has been configured for your database, you may also overwrite this file in {user.home}/test.properties.

 ant test

This will run the LRG, the results will be output into the report directory as html.

The following ant test targets are defined:

  • test.srg
  • test.lrg

Eclipse JUnit

The eclipselink.core.test Eclipse project contains launch targets in the elipselink.core.test/run directory to run the LRG or SRG through the Eclipse JUnit integration. Ensure that the eclipselink.core.test/run directory contains a test.properties file that includes configuration information for your database.

Note that the majority of the foundation tests are built using a legacy test framework which has been migrated to extend JUnit. One issue is that the total number of tests are unknown before the tests are setup, so the progress bar in Eclipse will not be accurate.

Ensure the following (Java | Build Path | Classpath Variables) are set:

  • TOOLS_LIB variable has been mapped to your JDK tools.jar
  • ORACLE_JDBC_LIB variable has been mapped to your database's JDBC driver (compile-time for extension project)
  • JDBC_LIB variable has been mapped to your database's JDBC driver (vendor-agnostic driver)
  • Some JDBC drivers may require the system library path to be set, or dlls to be on the path

Testing Browser

Early in its existence, this product was tested with an in-house testing framework. A large number of tests are still available through this test framework. Testing is gradually being migrated to frameworks such as JUnit, but the GUI tool available in the legacy framework is still quite useful for testing. The code for this test framework is stored in the eclipselink.core.test project.

The eclipselink.core.test Eclipse project contains launch targets in the elipselink.core.test/run directory to run the Testing Browser.

You could also configure your own run target:

  1. Run the process.resource target of the build.xml in the base directory of the eclipselink.core.test project as an ant script. This will copy some xml files to your eclipselink.core.test/run directory.
  2. Create a Java Application run target on the eclipselink.core.test project - I'll call it Testing Browser
  3. Use org.eclipse.persistence.testing.framework.ui.TestingBrowserFrame as the main class
  4. Add "-Xmx256m -Djava.security.manager -Djava.security.policy==${workspace_loc:eclipselink.core.test}/resource/java.policy.allpermissions" to the VM arguments section of the Arguments tab
  5. Add the following to the classpath: (note these are listed by category and you may be able to run subsets of the tests without certain categories)
    1. JDBC
      1. your JDBC driver of choice
    2. JPA
      1. jpa.core
      2. jpa.test
    3. Oracle Extensions
      1. eclipselink.extension.oracle
      2. eclipselink.extension.oracle.test
      3. jars required to compile eclipselink.extension.oracle - aqapi.jar, sdoapi.jar, dms.jar, xdb.jar, xml.jar, xmlparserv2.jar
    4. Java
      1. a JAVA_TOOLS_LIB variable that points to the tools jar in your java installation
    5. Generated classes
      1. Add the base directory of the eclipselink.core.test project. For some reason, this is where all java output goes. We output some java files and then compile them. They will go there.
  6. Run the "Testing Browser" run target
  7. Input you DB login information. You can do this by selecting a value from the "Quick Login" drop box and then edit the form on the right side of the GUI with any information that is different from what is already populated
  8. Run either the SRGTestModel or the LRGTestModel listed on the right side of the GUI by selecting it and then clicking the "Run Test" button.