如何在java或groovy中解析Cucumber功能文件?
问题描述:
我需要解析.feature文件并生成Json数据。我目前能够阅读使用正则表达式的步骤,但我想分析整个功能文件。如何在java或groovy中解析Cucumber功能文件?
Path path= Paths.get("path to feature file").toAbsolutePath();
try {
File file = new File(path.toString())
try {
List<String> data = Files.readAllLines(file);
data.forEach(line -> {
Matcher stepMatcher = Pattern.compile("\\b(Given|When|Then|And|But)(.*)").matcher(line);
if (stepMatcher.find()) {
System.out.println(line);
}
});
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答
我在google表格中得到了答案。答案是
public void readFeatureFile() {
Path fpath= Paths.get("path to file").toAbsolutePath();
String path = fpath.toString();
String gherkin;
try {
gherkin = FixJava.readReader(new InputStreamReader(new FileInputStream(path), "UTF-8"));
System.out.println("gherkin...\n" + gherkin);
StringBuilder json = new StringBuilder();
System.out.println("json: '" + json + "'");
JSONFormatter formatter = new JSONFormatter(json);
System.out.println("formatter: " + formatter.toString());
Parser parser = new Parser(formatter);
System.out.println("parser: " + parser.toString());
parser.parse(gherkin, path, 0);
System.out.println("json: '" + json + "'");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
}
}
退房这个网址为讨论 discussion link
请仔细阅读http://stackoverflow.com/help/how-to-ask和重新表述您的问题。你有什么确切的问题?你确切的问题是什么?如果你的问题只是“写我的代码做我想做的事”,那么你的问题就是关于SO的话题。 – Vampire