How to get name of scenario in cucumber java?

2019-01-25 05:35发布

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 ?

2条回答
叼着烟拽天下
2楼-- · 2019-01-25 06:02
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楼-- · 2019-01-25 06:12

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.

查看更多
登录 后发表回答