Skip to content

Latest commit

 

History

History

qa

Running Integration Tests

The integration testsuites are located under qa/. There you'll find a folder named XX-runtime for each server runtime we support. These projects are responsible for taking a runtime container distribution (ie. Apache Tomcat, JBoss AS ...) and configuring it for integration testing. The actual integration tests are located in the qa/integration-tests-engine and qa/integration-tests-webapps modules.

  • integration-tests-engine: This module contains an extensive testsuite that test the integration of the process engine within a particular runtime container. For example, such tests will ensure that if you use the Job Executor Service inside a Java EE Container, you get a proper CDI request context spanning multiple EJB invocations or that EE resource injection works as expected. These integration tests are executed in-container, using JBoss Arquillian.
  • integration-tests-webapps: This module tests the camunda BPM webapplications inside the runtime containers. These integration tests run inside a client / server setting: the webapplication is deployed to the runtime container, the runtime container is started and the tests running inside a client VM perform requests against the deployed applications.

In order to run the integration tests, first perform a full install build. Then navigate to the qa folder.

We have different maven profiles for selecting

  • Runtime containers & environments: jboss, tomcat, wildfly
  • The testsuite: engine-integration, webapps-integration
  • The database: h2,h2-xa,postgresql,postgresql-xa (XA is only supported on JBoss / Wildfly atm)

In order to configure the build, compose the profiles for runtime container, testsuite, database. Example:

mvn clean install -Pengine-integration,jboss,h2

Here's another example for using wildfly as the runtime container:

mvn clean install -Pengine-integration,wildfly,h2

If you want to test against an XA database, just add the corresponding XA database profile to the mvn cmdline above. Example:

mvn clean install -Pengine-integration,jboss,postgresql,postgresql-xa

You can select multiple testsuites but only a single database and a single runtime container. This is valid:

mvn clean install -Pengine-integration,webapps-integration,tomcat,postgresql

There is a special profile for JBoss Application Server:

  • Domain mode: mvn clean install -Pengine-integration,h2,jboss-domain