flink-connectors
flink-connectors copied to clipboard
Integrate flink end-to-end tests with Travis
Suggestion came from slack around integrating testing of the flink connectors using the flink end-to-end tests.
From Stephan:
Or we change the build setup of the
flink-connectorsrepository a bit:
- Travis would not call gradle directly, but instead run a test driver script
- That script would trigger initially gradle, but also run some end-to-end tests that download flink, take the compiled connector, start flink, submit a job, parse results, etc.
I think I know what this issue is referring to, but it is missing specifics about what these end-to-end tests are.
I take the meaning to be, run gradlew test in the travis build. At the moment, travis is just building the code.
I've noticed (https://travis-ci.org/pravega/flink-connectors/builds/382312652) the test was run with gradlew check, while some others don't. A little puzzled as to why.
Here is what I have in mind for the end to end tests:
- build
- test
- download and compile a flink sample (at minimum exercising flink pravega writer/reader).
- download and start flink cluster
- run the flink app on the flink cluster
- some basic verification of the flink app.
- eventually extend the flink samples to cover more features (exactlyonce, streamcut, table/batch, etc.)
Functional wise, the end-to-end tests do not go much beyond the existing unit tests. The main difference is that they mimic the end user experience.
comments?
In Flink, we have the end-to-end tests mainly to validate dependencies, classloading, config setups, multi process setups, etc. They have been useful in uncovering issues in those areas.
For a simple overview, have a look at this maven module: https://github.com/apache/flink/tree/master/flink-end-to-end-tests