Unit and Integration/Functional Testing

Overview

Information on unit and functional testing within the application.  See the QA Suites page for specific documentation on different kinds of testing.

Details

The software quality approach for this project involves various types of checks. In each case, we attempt to define a specification for "coverage" to determine at any time how much of the application is being covered by existing tests and how much is not.  As new features are added, these specifications would also require updating.

For more information, see these sections

Running the Integration Tests

By default the "skipTests" parameter is set to true for integration tests, so they do not run when the project is built, whereas unit tests will run as part of the standard build.

Mojo Integration Tests

Prerequisites

  • A config-test.properties file must exist for each type of loader that is configured to point to a database that contains no data (this is a destructive test).  Each file is specified with a variation of "run.config".  See the example below.
    • the different properties files are configured with handlers that know how to deal with different formats once loaded. 
    • the various config sub-projects have config.properties files that can be used as a guide.
    • They can all point to the same database for testing
  • A server may or may not be running at the "base.url" specified in the "config-test.properties" files.  If so, mojos will connect to the server, otherwise not.
  • A "maven.home" property  must be specified to bootstrap the process
  • A run.config.umls property must ALSO be supplied for the mojo itself to access JPA services.  Any of the test file should be fine.

Run using the "mojo" profile (this will run only mojo integration tests).  For example (command line execution):

cd integration-tests
mvn -Pmojo install -DskipTests=false -Dmaven.home=c:/apache-maven-3.0.5 \
  -Drun.config.rrf=c:/umlsserver/config/config-testrrf.properties \
  -Drun.config.rf2=c:/umlsserver/config/config-testrf2.properties \
  -Drun.config.claml=c:/umlsserver/config/config-testclaml.properties \
  -Drun.config.owl=c:/umlsserver/config/config-testowl.properties \
  -Drun.config.umls=c:/umlsserver/config/config-testrrf.properties

 

Here is a sample Eclipse run configuration for the same test:

REST Integration Tests

Prerequisites

  • A config.properties file must exist that is configured to point to a database that is loaded with the standard dev database as described in Building and Deploying in Eclipse.
  • A server must be running at the "base.url" specified in the "config.properties" file.

Run using the "rest" profile (this will run only rest integration tests).

 

cd integration-tests
mvn -Prest install -Drun.config.umls=c:/termserver/config/config.properties -DskipTests=false

 

JPA Integration Tests

Prerequisites

  • A config.properties file must exist that is configured to point to a database that is loaded with the standard dev database as described in Building and Deploying in Eclipse.
  • Run using the "rest" profile (this will run only rest integration tests).

 

cd integration-tests
mvn -Pjpa install -Drun.config.umls=c:/termserver/config/config.properties -DskipTests=false