tests • Integration tests against the data access layer • Integration tests with external dependencies (e.g. message broker, database, …) • UI tests with containerized, Selenium compatible, web browsers
{ private List<Field> allContainers; @Override public void beforeAll(ExtensionContext context) throws Exception { // find all containers via Reflection, add them to allContainers and iterate over them ((GenericContainer) f.get(container)).start(); // … } @Override public void afterAll(ExtensionContext context) throws Exception { // iterate over allContainers and stop each container ((GenericContainer) f.get(container)).stop(); // … } }
tests • Use of all Selenium docker images from selenium-docker project • Clean and fixed environment for each browser and test • Selenium API and browser compatibility assured • VNC recording (optionally just failed tests)