web-dev-qa-db-fra.com

Comment obtenir le nom du scénario en java concombre?

Je voudrais obtenir le nom du scénario pour avoir des journaux significatifs et générer un rapport personnalisé au moment de l'exécution en Java. La classe de scénario n'a que les méthodes getStatus () et getSourceTagNames (). Je ne trouve aucun moyen d'obtenir le nom du scénario.

Quelqu'un peut-il m'aider à résoudre ce problème?

24
user2365105

Depuis la version 1.6, en plus de getStatus() et getSourceTagNames(), il existe une autre méthode, getName() qui retourne la description du scénario. Par exemple, pour un scénario comme suit:

Scenario: verify number of topics shown in the UI

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

J'initialise le scénario dans @Before comme suit:

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

J'espère que cela t'aides.

28
Sridevi Yedidha
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);

Une fois que vous avez configuré @Before, essayez ceci pour récupérer vos éléments de fonctionnalité et de scénario Cucumber.

0
Jrf

Dans la définition d'étape, vous pouvez utiliser CucumberHelper.scenario.getName().

Sur la base de cette API, vous pouvez utiliser les méthodes getID, getSourceTagNames, getStatus et getClass.

0
Philip D.