Before running tests, ensure all steps in the BUILDING.md have been performed.
Tests are broken up into five types - unit, integration, distributed, acceptance, and upgrade. They can be executed using the following commands from the Geode repository root directory:
-
Unit tests: generally test a single class and run quickly
./gradlew test -
Integration tests: involve inter-operation of components or subsystems
./gradlew integrationTest -
Distributed tests: involve multiple members of a distributed system.
./gradlew distributedTest -
Acceptance tests: test Geode from end user perspective
./gradlew acceptanceTest -
Upgrade tests: test backwards compatibility and rolling upgrades between versions of Geode
./gradlew upgradeTestNote: Rolling upgrades are NOT supported across the Jakarta EE 10 migration boundary (pre-migration → post-migration) for Tomcat session replication due to the javax.servlet → jakarta.servlet API incompatibility. Rolling upgrades within the same API era continue to work.
To run an individual test, you can either
- Run the test in your IDE
- Run from terminal by specifying the sub-project and test type:
./gradlew project:testType --tests testName
For example:
./gradlew geode-core:test --tests ArrayUtilsTest
./gradlew geode-core:distributedTest --tests ConnectionPoolDUnitTest
To run a specific category of tests (eg: GfshTest):
./gradlew project:testType -PtestCategory=fullyQualifiedTestClassName
For example:
./gradlew geode-core:distributedTest -PtestCategory=org.apache.geode.test.junit.categories.GfshTest
Available categories can be found in the geode-junit/src/main/java/org/apache/geode/test/junit/categories in the Geode repository.
Test results can be viewed by navigating to
build/reports/combined in the Geode repository, then opening the index.html file in your browser.