【问题标题】:How to parse Cucumber feature file in java or groovy?如何在 java 或 groovy 中解析 Cucumber 特征文件?
【发布时间】:2017-10-05 09:50:49
【问题描述】:

我需要解析 .feature 文件并生成 Json 数据。我目前能够使用正则表达式读取步骤,但我想解析整个功能文件。

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();
                    }

【问题讨论】:

  • 请阅读stackoverflow.com/help/how-to-ask 并重新表述您的问题。你有什么确切的问题?你的确切问题是什么?如果您的问题只是“给我写代码来做我想做的事”,那么您的问题与 SO 无关。

标签: java json groovy cucumber-jvm fileparsing


【解决方案1】:

我在谷歌表单中得到了答案。答案是

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

【讨论】:

    猜你喜欢
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多