Build and Dependency Management Tool
This is another very important piece. While choosing any test stack to write our tests, we are actually talking about multiple tools to be used. Like in our case, we will be using
- Selenium for browser api's
- Cucumber-jvm for writing test scenarios
- JUnit for doing assertions etc
So basically, our framework is dependent on a bunch of smaller projects or jar's in our case. This is where a dependency management tool comes into picture.
We could have chosen to download and add all the required jars into some lib folder but that can easily get confusing. This is where a tool like maven can be of great help. It can pull all the dependent jars needed for our project on it's own and we wouldn't need to download and add them separately.
Also, Maven doubles up as a build tool and allows you to run tests from command line. This is of great help when we plan to integrate our test to a continuous integration process.