Hi everyone,
after reviewing a bunch of end-to-end tests, I'm wondering if we should
really continue implementing everything in bash scripts. Wouldn't it be
nicer to implement them in Java code that just calls the interfaces of
Flink (e.g. "./bin/flink run" or REST API)?
Here are some thoughts why I think we should consider that:
- Implement the tests in a more object oriented way: We could have
classes such as Cluster, LogAnalyzer, WatchdogProcess, and other utility
classes that can make writing tests easier. This also ensure
maintainability in the future because all tools for proper Java coding
style, comments etc. are already in place.
- Exception handling and type safety: We could catch excpetion more
easily (e.g. if a REST request fails or a process is not there)
- Debuggability: We could run end-to-end tests in the IDE for debugging
and set breakpoints etc.
What do you think?
Regards,
Timo