private static void execute(File root, List<String> filters, boolean recursiv, Object[] arguments) {
        Set<File> files = new HashSet<File>();
        for (String filter : filters) {
            ACCEPT_FILES_BY_PATTERN_FILTER.setPattern(filter);
            for (File file : root.listFiles(ACCEPT_FILES_BY_PATTERN_FILTER)) {
                files.add(file);
            }
        }


        for (File file : files) {
            if (logger.isInfoEnabled()) {
                logger.info("########################## Begin the test - " + file.getPath() + " ##########################");
            }
            try {
                seleniumShell.run(file.getPath(), arguments);
            } catch (Exception e) {
                logger.error("########################## Failed the test - " + file.getPath() + ", Exception: " + e.toString(), e);
            }
            if (logger.isInfoEnabled()) {
                logger.info("########################## End the test - " + file.getPath() + " ##########################\n\n\n");
            }
        }

        if (recursiv) {
            for (File folder : root.listFiles(ACCEPT_FOLDERS_FILTER)) {
                execute(folder, filters, true, arguments);
            }
        }
    }