From b99cfdae982f14bdd3e95688e9fe0a74e8dbb34d Mon Sep 17 00:00:00 2001 From: Ryan McMahon Date: Wed, 19 Sep 2018 15:56:03 -0700 Subject: [PATCH] Adding TESTING.md (#2490) --- README.md | 4 ++++ TESTING.md | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 TESTING.md diff --git a/README.md b/README.md index 54b9686ffd0d..e4988e8edaed 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,10 @@ Apache Geode includes the following features: See [BUILDING.md](https://github.com/apache/geode/blob/develop/BUILDING.md) for instructions on how to build the project. +## Running Tests +See [TESTING.md](https://github.com/apache/geode/blob/develop/TESTING.md) for +instructions on how to run tests. + ## Geode in 5 minutes Geode requires installation of JDK version 1.8. After installing Apache Geode, diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 000000000000..f103bfadccd8 --- /dev/null +++ b/TESTING.md @@ -0,0 +1,38 @@ +# Running Tests + +## Prerequisites +Before running tests, ensure all steps in the [BUILDING.md](https://github.com/apache/geode/blob/develop/BUILDING.md) have been performed. + +## Running Tests By Type +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 compatibility between versions of Geode and rolling upgrades + `./gradlew upgradeTest` + +## Running Individual Tests +To run an individual test, you can either +1. Run the test in your [IDE](https://github.com/apache/geode/blob/develop/BUILDING.md#setting-up-intellij) +2. Run the 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` + +## Running Tests By Category +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. + +## Viewing Test Results +Test results can be viewed by navigating to +`build/reports/combined` in the Geode repository, then opening the `index.html` file in your browser. \ No newline at end of file