| End to end storm integration tests | |
| ================================== | |
| Running tests end-to-end | |
| ------------------------ | |
| Assumption: | |
| A single version of storm binary zip such as `storm-dist/binary/target/apache-storm-2.0.0-SNAPSHOT.zip` is present | |
| The following command will bring up a vagrant cluster. | |
| ```sh | |
| cd integration-test/config | |
| vagrant up | |
| ``` | |
| This automatically will run `integration-test/run-it.sh`. | |
| This brings up a vagrant machine, with storm and zookeeper daemons. | |
| And runs all the tests against it. | |
| Running tests for development & debugging | |
| ========================================= | |
| ```vagrant up``` command is setup as a complete auto-pilot. | |
| Following describes how we can run individual tests against this vagrant cluster or any other cluster. | |
| Configs for running | |
| ------------------- | |
| Configuration for the Storm cluster in Vagrant can be found in `integration-test/config/storm.yaml`. The configuration for the tests when running against Vagrant can be found in `src/test/resources/storm-conf/`, which is used if you run Maven with the `intellij` profile. | |
| Outside Vagrant, you will need to configure your cluster as normal through your cluster's storm.yaml file. You can configure the tests by pointing to a storm.yaml by adding "-Dstorm.conf.file=/your/path/to/storm.yaml". This file needs to contain `nimbus.seeds` pointing to your Nimbus URL(s). | |
| If you're running against a cluster outside Vagrant, the test needs access to Nimbus and the test must be able to hit the Logviewer URLs at port 8000 on each Supervisor. | |
| Running all tests manually | |
| -------------------------- | |
| To run all tests: | |
| ```sh | |
| mvn clean package -DskipTests && mvn test -DskipTests=false | |
| ``` | |
| To run a single test: | |
| ```sh | |
| mvn clean package -DskipTests && mvn test -DskipTests=false -Dtest=SlidingWindowCountTest#testWindowCount | |
| ``` | |
| Running tests from IDE | |
| ---------------------- | |
| You might have to enable intellij profile to make your IDE happy. | |
| Make sure that the following is run before tests are launched. | |
| ```sh | |
| mvn package | |
| ``` | |
| Running tests with custom storm version | |
| --------------------------------------- | |
| You can supply custom storm version using `-Dstorm.version=<storm-version>` property to all the maven commands. | |
| ```sh | |
| mvn clean package -DskipTests -Dstorm.version=<storm-version> | |
| mvn test -DskipTests=false -Dtest=DemoTest -Dstorm.version=<storm-version> | |
| ``` | |
| To find version of the storm that you are running run `storm version` command. | |
| Code | |
| ---- | |
| Start off by looking at file [DemoTest.java](https://github.com/apache/storm/blob/master/integration-test/src/test/java/org/apache/storm/st/DemoTest.java). |