I totally agree. Too many of our "unit" tests are integration tests and end up
spinning up an entire local-mode cluster.
I personally would like to see three levels of testing.
1) true unit tests. They only touch the code under test and very little else.
The should be what you get when you run mvn test2) integration tests. These
should spin up local mode clusters and modify configs/etc to get a decent set
of more white box tests. The should run as a part of trivis-ci, and probably
should run by enabling a special profile.3) Sanity Integration Tests. ducktape
looks like a great fit here. I would love to see us spin up an few different
scenarios for testing, with/without security. Talking to Kafka, Hadoop(HBase,
HDFS, Hive), redis, elastasearch, etc.
These would be run frequently but not necessarily a part of CI initially.
- Bobby
On Wednesday, November 4, 2015 7:21 PM, Harsha <[email protected]> wrote:
Hi All,
As community we are growing and adding new and exciting
features to Storm and also we've ever growing connector which
only helps in storm adoption. One thing we've severely lacking
is system tests. There are unit tests which acts as
integration tests to storm-core but there are no system wide
integration tests that can spin up kafka nodes and storm ,
hbase and run a topology that can make sure the data is
getting into hbase.
We at Hortonworks use our test topologies run some of these
tests but this integration code to spin up vms or nodes is hard
to share. In apache kafka we are using ducktape to write system
tests so far its working out good. If there are any other
frameworks you've in mind we can definitely take a look. But as
a community we need start looking at
https://github.com/confluentinc/ducktape or similar frameworks
to start writing systems tests. Ducktape makes it easy to run
in a vm or any other infrastructure. Appreciate any feedback
on this.
Thanks,
Harsha