How to get name of scenario in cucumber java?

ぃ、小莉子 提交于 2019-11-27 23:02:28

问题


I would like to get name of scenario to have meaningful logs and to generate custom report at run-time in java. Scenario class have only has getStatus() and getSourceTagNames() methods. I don't find a way to get scenario name.

Can someone help me to get this resolved ?


回答1:


From version 1.6, in addition to, getStatus() and getSourceTagNames(), there is another method, getName() that returns the scenario's description. For example, for a scenario as follows:

Scenario: verify number of topics shown in the UI

scenario.getName() returns "verify number of topics shown in the UI"

I initialize scenario in @Before as follows:

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

Hope this helps.




回答2:


String scenarioName = scenario.getName();
String[] arrayScenarioName = scenarioName.split("--");
String scenarioName1 = arrayScenarioName[0]; 
String scenarioName2 = arrayScenarioName[1]; 
System.out.println("Scenario Name 1 for this test is -> " + scenarioName1);
System.out.println("Scenario Name 2 for this test is -> " + scenarioName2);

String scenarioId = scenario.getId();
//Takes the Scenario ID and removes the ; and splits it into 2 strings
String scenarioId4 = scenarioId;
String[] parts = scenarioId4.split(";");
String part1 = parts[0]; 
String part2 = parts[1]; 
String part11 = part1.replace('-', ' ');
String part22 = part2.replace('-', ' ');
System.out.println("Scenario ID for this test is -> part11 " + part11);
System.out.println("Scenario ID for this test is -> part22 " + part22);

Once you have the @Before set up them try this to retrieve your Cucumber Feature and Scenario items.




回答3:


Inside the step definition, you can use CucumberHelper.scenario.getName().

Based on this API you can use getID, getSourceTagNames, getStatus and getClass methods.



来源:https://stackoverflow.com/questions/23602953/how-to-get-name-of-scenario-in-cucumber-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!