Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

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

m (Testing Browser)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Running the foundation LRG ==  
 
== 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 org.eclipse.persistence.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.
+
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 org.eclipse.persistence.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:
  
There are several ways to run the tests.
 
 
* Ant (1.7 or greater)
 
* Ant (1.7 or greater)
 
* Eclipse JUnit
 
* Eclipse JUnit
Line 10: Line 11:
 
Prior to running the tests, a build.properties file must exist in your user home directory with the following properties:
 
Prior to running the tests, a build.properties file must exist in your user home directory with the following properties:
  
* junit.lib=<full path of junit 4 jar>  
+
* junit.lib=<full path of junit 4 jar>;<full path of hamcrest-core jar>
* tools.lib=<full path of tools jar in your JDK installation - usually in JAVA_HOME/lib>  
+
* jdbc.driver.jar=<full path to your JDBC driver>  
* jdbc.driver=<full path to your JDBC driver>  
+
 
* db.driver=<classname of your JDBC driver>  
 
* db.driver=<classname of your JDBC driver>  
 
* db.url=<JDBC url of your DB>  
 
* db.url=<JDBC url of your DB>  
 
* db.user=<db username>  
 
* db.user=<db username>  
 
* db.pwd=<db password>  
 
* db.pwd=<db password>  
* (optional) db.platform=<EclipseLink Database Platform to use> - this is only necessary if EclipseLink does not properly dectect you DB with its database detection
+
* (optional) db.platform=<EclipseLink Database Platform to use> - this is only necessary if EclipseLink does not properly detect your DB platform with the "database detection" feature
 +
 
 +
Alternative approach is to move database related properties (jdbc.driver.jar, db.*) to an extra file and pass this file to the Ant build using '-Dtest.properties=<path to custom properties file>' option
  
 
==Ant==
 
==Ant==
Line 23: Line 25:
 
The tests can be run from two ant build scripts
 
The tests can be run from two ant build scripts
  
1. The base build.xml (in trunk)
+
1. The base antbuild.xml (in repository root)
  
 
You can run the following targets:
 
You can run the following targets:
Line 29: Line 31:
 
* test-core-srg - run the Core SRG
 
* test-core-srg - run the Core SRG
  
2. The build.xml script in foundation/eclipselink.core.test
+
2. The antbuild.xml script in foundation/eclipselink.core.test
 
* test-lrg - run the Core LRG
 
* test-lrg - run the Core LRG
 
* test-srg - run the Core SRG
 
* test-srg - run the Core SRG
Line 37: Line 39:
 
==Eclipse JUnit==
 
==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.
+
The eclipselink.core.test Eclipse project contains launch targets to run the LRG or SRG through the Eclipse JUnit integration.
  
 
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.
 
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:
 
Ensure the following (Java | Build Path | Classpath Variables) are set:
* TOOLS_LIB variable has been mapped to your JDK tools.jar
+
* ECLIPSELINK_HOME variable has been mapped to your local Git clone root folder
 
* 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)
* Some JDBC drivers may require the system library path to be set, or dlls to be on the path
+
 
 +
If alternative approach for defining test related properties was taken, make sure to update reference in particular Run Configuration -> Arguments -> VM arguments section to be pointing to this new file. Look for line containing '-Dtest.properties=...'.
  
 
==Testing Browser==
 
==Testing Browser==
Line 81: Line 84:
 
## Generated classes
 
## Generated classes
 
### Add the run directory of the eclipselink.core.test project.  This is where all java output goes.  We output some java files and then compile them.  They will go there.
 
### Add the run directory of the eclipselink.core.test project.  This is where all java output goes.  We output some java files and then compile them.  They will go there.
 
==References==
 
* [[EclipseLink/Building/64bit| EclipseLink 64 Bit Development]]
 

Latest revision as of 13:44, 18 April 2015

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 org.eclipse.persistence.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 (1.7 or greater)
  • Eclipse JUnit
  • Testing Browser

Prior to running the tests, a build.properties file must exist in your user home directory with the following properties:

  • junit.lib=<full path of junit 4 jar>;<full path of hamcrest-core jar>
  • jdbc.driver.jar=<full path to your JDBC driver>
  • db.driver=<classname of your JDBC driver>
  • db.url=<JDBC url of your DB>
  • db.user=<db username>
  • db.pwd=<db password>
  • (optional) db.platform=<EclipseLink Database Platform to use> - this is only necessary if EclipseLink does not properly detect your DB platform with the "database detection" feature

Alternative approach is to move database related properties (jdbc.driver.jar, db.*) to an extra file and pass this file to the Ant build using '-Dtest.properties=<path to custom properties file>' option

Ant

The tests can be run from two ant build scripts

1. The base antbuild.xml (in repository root)

You can run the following targets:

  • test-core - run the Core LRG
  • test-core-srg - run the Core SRG

2. The antbuild.xml script in foundation/eclipselink.core.test

  • test-lrg - run the Core LRG
  • test-srg - run the Core SRG

Test logging will appear on Standard out and Standard Error. Test results will appear in foundation/eclipselink.core.test/reports

Eclipse JUnit

The eclipselink.core.test Eclipse project contains launch targets to run the LRG or SRG through the Eclipse JUnit integration.

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:

  • ECLIPSELINK_HOME variable has been mapped to your local Git clone root folder
  • JDBC_LIB variable has been mapped to your database's JDBC driver (vendor-agnostic driver)

If alternative approach for defining test related properties was taken, make sure to update reference in particular Run Configuration -> Arguments -> VM arguments section to be pointing to this new file. Look for line containing '-Dtest.properties=...'.

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 eclipselink.core.test/run directory to run the Testing Browser. Prior to running that target, you should run the "process-resource" target in the build.xml file in eclipselink.core.test (If you have run a full build, it will have been run already). Launching the browser is a matter of running that build target.

When you run the test target:

  1. Input your 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
  2. 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.
  3. You can run tests individually by navigating to them. You can open folders by double-clicking on them. If they don't immediately open, click the "setup" button and when setup is done, they should open.

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 (if doing Oracle specific testing)
      2. eclipselink.extension.oracle.test (if doing Oracle specific testing)
      3. jars required to compile eclipselink.extension.oracle - aqapi.jar, sdoapi.jar, dms.jar, xdb.jar, xml.jar, xmlparserv2.jar (if doing Oracle specific testing)
    4. External Extensions
      1. <trunk>/extension.lib.external (user created)
      2. jars required run included (Testing Browser.launch) configuration
      3. Add an empty library project called extension.lib.external (user created) and put any and the following launch required jars into this folder - point the project to this folder and any dependencies in the classpath of the included eclipse launch targets will resolve.
      4. postgresql_jdbc3_82.jar, db2java_9.zip, jconn3.jar, mysql-connector-java-5.0.7-bin.jar
    5. Java
      1. a TOOLS_LIB variable that points to the tools jar in your java installation
    6. Generated classes
      1. Add the run directory of the eclipselink.core.test project. This is where all java output goes. We output some java files and then compile them. They will go there.

Back to the top