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
- Static Code Analysis
- Unit Testing
- Functional Mojo Testing
- Functional Jpa Testing
- Functional REST Testing
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
References/Links