Gurka är det engelska engelska formatet som kan förstå gurka för att köra automationstestet. Gherkins funktionsfilsspråk är ett företagsläsbart domänspecifik språk.
Den här koden är att konvertera din Gurkinsfunktionsfil till JSON-format baserat på JSON Formatter-ramverket.
Gurkin till JSON Parser Main
// Gherkin funktionen fil till JSON konverterade huvudklassen
offentlig klass GToJRun {
// Här ställer du in Gurkinvägen för att hämta funktionsfil och JSON-filväg till
// skriv i JSON-format
privat statisk String featurePath = "c: \ Json \ login.feature";
privat statisk sträng jasonPath = "c: \ Json \ login.json";
// Ange som söt / ful format för JSON-utgång. Som standard är det ganska
statisk GtoJCore testG = ny GtoJCore ("pretty");
statisk statisk tomt huvud (String [] args) {
testG.gherkinTojson (featurePath, jasonPath);
}
}
Kärnklassen är baserad på JSON formatteringsramen. Du kan få omvandlingstiden om du vill kontrollera den totala bearbetningstiden för en större funktionsfil.
Gurkin till JSON Parser Core
importera java.io.FileInputStream;
importera java.io.FileNotFoundException;
importera java.io.FileWriter;
importera java.io.IOException;
importera java.io.InputStreamReader;
importera java.io.UnsupportedEncodingException;
importera gherkin.formatter.JSONFormatter;
importera gherkin.formatter.JSONPrettyFormatter;
importera gherkin.parser.Parser;
importera gherkin.util.FixJava;
// Gherkin to Json parser core file.
offentlig klass GtoJCore {
privat strängformat;
// För att få total körtid (valfritt)
long startTime = System.currentTimeMillis ();
offentlig GtoJCore (String outFormat) {
this.format = outFormat;
}
offentlig sträng getOutFormat () {
returformat;
}
public void gherkinTojson (String fPath, String jPath) {
// Definiera funktionsfil och JSON-filväg.
Stringkarbin = null;
Prova {
gherkin = FixJava.readReader (ny InputStreamReader (
ny FileInputStream (fPath), "UTF-8"));
} fånga (FileNotFoundException e) {
System.out.println ("Funktionsfilen hittades inte");
// e.printStackTrace ();
} fånga (UnsupportedEncodingException e) {
e.printStackTrace ();
} fånga (RuntimeException e) {
e.printStackTrace ();
}
StringBuilder json = new StringBuilder ();
JSONFormatter formaterare;
// ganska eller fult val, ganska som standard
om (format.equalsIgnoreCase ("ful")) {
formatter = ny JSONFormatter (json); // inte söt
} annat {
formatter = ny JSONPrettyFormatter (json); // pretty
}
Parser parser = ny Parser (formatter);
parser.parse (gherkin, fPath, 0);
formatter.done ();
formatter.close ();
System.out.println ("json output: n" + json + "'");
// Spola slutligen och stäng
Prova {
FileWriter-fil = ny FileWriter (jPath);
file.write (json.toString ());
file.flush ();
file.close ();
} fånga (IOException e) {
e.printStackTrace ();
}
long endTime = System.currentTimeMillis ();
//valfri
System.out.println ("n Total körtid:" + (endTime - startTime)
+ "Millisekunder");
}
}
Detta ger dig ett vackert eller fult JSON-format som du kan välja från Main Class. Du kan definiera filvägen både för funktionfilen att läsa och JSON-filen för att skriva med alternativet för att välja sött eller fuligt format.