package com.ggasoftware.uitest.cuke; import com.ggasoftware.uitest.utils.ReporterNGExt; import java.io.File; import java.util.ArrayList; import java.util.List; /** * Cucumber builder. * * @author Belousov Andrey */ public class CukeBuilder { /** * Get feature files. * * @param featurePath - features files root path. * @return List of feature files */ private static List<String> getFeatures(final File featurePath) { List<String> features = new ArrayList<>(); if (featurePath.isDirectory()) { File[] list = featurePath.listFiles(); if (list != null) { for (File file : list) { features.addAll(getFeatures(new File(file.getAbsolutePath()))); } } } else { if (featurePath.getName().endsWith(".feature")) { features.add(featurePath.getPath()); } } return features; } /** * Run cucumber features. * * @return List of features tests */ public Object[] Run() { return Run(""); } /** * Run cucumber features. * * @param tags - cucumber tags options. * @return List of features tests */ public Object[] Run(String tags) { ReporterNGExt.logBusiness(String.format("Run Cucumber features with tags: %s", tags)); CukeTestImpl test; List<Object> tests = new ArrayList<>(); List<String> features = getFeatures(new File("src/test/resources/features")); for (String feature : features) { test = new CukeTestImpl(feature, tags); tests.add(test); } return tests.toArray(); } }