Gherkin is het eenvoudige Engelse formaat dat Cucumber kan begrijpen om de automatiseringstest uit te voeren. Gherkin-functiebestandstaal is door een bedrijf leesbaar domeinspecifieke taal.
Deze code is om uw Gherkin-functiebestand te converteren naar JSON-indeling op basis van JSON Formatter-framework.
Gherkin naar JSON Parser Main
// Gherkin-functiebestand naar JSON geconverteerde hoofdklasse
public class GToJRun {
// Hier stelt u het Gherkin-pad in om functiebestand en JSON-bestandspad op te halen
// schrijf in JSON-formaat
private static String featurePath = "c: \ Json \ login.feature";
private static String jasonPath = "c: \ Json \ login.json";
// Stel in als mooie / lelijke indeling voor JSON-uitvoer. Standaard is het mooi
statische GtoJCore-testG = nieuwe GtoJCore ("pretty");
public static void main (String [] args) {
testG.gherkinTojson (featurePath, jasonPath);
}
}
De kernklasse is gebaseerd op JSON-formatteerraamwerk. U kunt de tijd voor het converteren verkrijgen als u de totale verwerkingstijd voor een groter bestand met functies wilt controleren.
Augurk naar JSON Parser Core
importeer java.io.FileInputStream;
importeer java.io.FileNotFoundException;
importeer java.io.FileWriter;
importeer java.io.IOException;
importeer java.io.InputStreamReader;
importeer java.io.UnsupportedEncodingException;
import gherkin.formatter.JSONFormatter;
import gherkin.formatter.JSONPrettyFormatter;
import gherkin.parser.Parser;
import gherkin.util.FixJava;
// Augurk naar Json parser core-bestand.
public class GtoJCore {
private String-indeling;
// Om de totale looptijd (optioneel) te krijgen
long startTime = System.currentTimeMillis ();
openbare GtoJCore (String outFormat) {
this.format = outFormat;
}
public String getOutFormat () {
retourformaat;
}
public void gherkinTojson (String fPath, String jPath) {
// Definieer Feature-bestand en JSON-bestandspad.
String augurk = nul;
proberen {
augurk = FixJava.readReader (nieuwe InputStreamReader (
nieuwe FileInputStream (fPath), "UTF-8"));
} catch (FileNotFoundException e) {
System.out.println ("Feature-bestand niet gevonden");
// e.printStackTrace ();
} catch (UnsupportedEncodingException e) {
e.printStackTrace ();
} catch (RuntimeException e) {
e.printStackTrace ();
}
StringBuilder json = nieuwe StringBuilder ();
JSONFormatter-formatter;
// mooie of lelijke selectie, behoorlijk standaard
if (format.equalsIgnoreCase ("ugly")) {
formatter = new JSONFormatter (json); // niet mooi
} else {
formatter = new JSONPrettyFormatter (json); // pretty
}
Parser-parser = nieuwe Parser (formatter);
parser.parse (augurk, fPath, 0);
formatter.done ();
formatter.close ();
System.out.println ("json output: n" + json + "'");
// Eindelijk doorspoelen en sluiten
proberen {
FileWriter-bestand = nieuwe FileWriter (jPath);
file.write (json.toString ());
file.flush ();
file.close ();
} catch (IOException e) {
e.printStackTrace ();
}
long endTime = System.currentTimeMillis ();
// optionele
System.out.println ("n Total Running Time:" + (endTime - startTime)
+ "Milliseconden");
}
}
Dit biedt u een mooie of lelijke JSON-indeling die u kunt selecteren in de hoofdklasse. U kunt het bestandspad definiëren, zowel voor het te lezen functiebestand als het JSON-bestand om te schrijven met de optie om een mooi of lelijk uitvoerformaat te selecteren.