2016-12-30 30 views
0

我想在運行時使用Java獲取當前的功能文件名稱。我在掛鉤方案的信息,但無法得到的特徵文件如何在運行時使用Java獲取當前的Cucumber功能文件名稱

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

我們有沒有類似的事情來獲得當前功能的文件名? 我用黃瓜版本1.2.4

+1

此功能有一個PR - https://github.com/cucumber/cucumber-jvm/pull/984,但它不會與發佈版本合併。作爲解決方法將特徵文件名稱作爲標記添加到具有某種標識符的特徵文件中。然後你可以使用scenario.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(),你會得到如下:

登錄到the-應用程序;登錄到應用程序與密碼

希望這可以幫助你!

相關問題