2016-12-30 20 views
0

Я хочу получить текущее имя файла функции во время выполнения с использованием Java. У меня есть данные сценария в крючке, но не смог получить файл особенностьКак получить текущее имя файла функции Cucumber во время выполнения с использованием Java

@Before 
    public void before(final Scenario scenario) { 
       this.scenario = scenario; 
     } 

Есть ли у нас нечто подобное, чтобы получить текущее имя файла Feature ?? я использую огуречные версии 1.2.4

+1

Существует PR для этой возможности - https://github.com/cucumber/cucumber-jvm/pull/984, но он не собирается сливаться с релизом. В качестве обходного пути добавьте имя файла функции в качестве тега в файл функции с каким-то идентификатором. Затем вы можете использовать script.getSourceTagNames(), чтобы получить все теги. Использование идентификатора определяет тег с именем файла функции. – Grasshopper

ответ

2

UPDATE:

Это моя реализация для названия компонентов, начиная с прописной буквой, как в примере:

private String getFeatureFileNameFromScenarioId(Scenario scenario) { 
    String featureName = "Feature "; 
    String rawFeatureName = scenario.getId().split(";")[0].replace("-"," "); 
    featureName = featureName + rawFeatureName.substring(0, 1).toUpperCase() + rawFeatureName.substring(1); 

    return featureName; 
} 

ORIGINAL:

Я не знаю, полезно ли это для вас, но я бы предложил использовать scenario.getId()

Это даст вам имя файла функции и сценария имя, например:

Feature: Login to the app 

Scenario: Login to the app with password 
Given I am on the login screen 
When I enter my passcode 
Then I press the ok button 

с scenario.getId() вы получите следующее:

Логин к в- приложение для входа в приложение

Надеюсь, это вам поможет!