Я получаю конкретное имя проекта на основе корня папки. Используя код:
private String getProjectName(Scenario scenario) {
List<String> pathArray = Arrays.asList(Path.of(scenario.getUri()).toUri().getPath().split("/"));
return pathArray.get(pathArray.size() - 1);
}
Для такой структуры, как показано на скриншоте ниже, это работает. Однако, если будет добавлено более одной папки перед именем файла .feature (номер 9), произойдет сбой.
Моя идея состоит в том, чтобы:
Это хорошая идея?
Поскольку вы не знаете, насколько вложена структура вашей папки, вам нужен некоторый шаблон для распознавания элемента, который, как вы знаете, будет существовать в структуре проекта, в вашем примере с текстом «функции», а затем перейти к следующему индексу. Так что ваша идея кажется мне хорошей.
Я обновил ваш метод, чтобы вернуть значение разделения после «функций».
private String getProjectName(Scenario scenario) {
String desiredString = "features";
String[] pathArray = Path.of(scenario.getUri()).toUri().getPath().split("/");
for (int i = 0; i < pathArray.length; i++) {
if (pathArray[i].equals(desiredString)) {
return (pathArray[i + 1]);
}
}
throw new IllegalArgumentException(String.format("The url provided does not contain <%s>", desiredString));
}
Любые намеки, как я могу начать с этого?