【问题标题】:Use Slim to Parse Fitnesse Test Context.txt File in Java在 Java 中使用 Slim 解析 Fitnesse Test Context.txt 文件
【发布时间】:2014-10-25 03:14:44
【问题描述】:

现状

作为预构建测试,我正在尝试检查对 java 固定装置的任何提交/更改不会破坏我在我的健身服务器中进行的任何健身测试。

我采用的方法是获取我想要验证提交不会中断的所有测试 (context.txt) 文件,并尽我所能对其进行解析,并将其与我可以使用反射获取的可用方法进行比较来自我的项目。

目前,对于所有可用的 java 固定装置,我都有一个从“类名”到“类对象”的 HashMap。我还能够以 File 对象的形式访问所有健身测试。看起来有点像这样:

HashMap<String, Class<?>> availableJavaClassesMap = initJavaMap();
List<File> allFitnesseTestFiles = initTestFiles();

目标

现在我希望能够做这样的事情:

HashMap<String, Method> parsedMethodsFromFitnesseMap;
For(File file: allFitnesseTestFiles) {
    parsedMethodsFromFitnesseMap.addAll( parseFile( file ) );
}

然后我将简单地比较两个 HashMap 并确保 parsedMethodsFromFitnesseMap HashMap 是 availableJavaClassesMap HashMap 的子集。

担心

  • 包含文件:如何处理解析那些第一种/其他方法
  • 场景:创建我自己的已知场景列表及其工作原理

理想的解决方案

  1. 是否有已经制作的解析器可以执行此操作?
    • 我找到了Slim Code,并认为它可以根据我的需要进行重构。
  2. 这是预构建检查的最佳方法吗?

注意

每个测试的运行成本都很高,因此仅运行所有测试以查看它们是否仍然有效并不是我需要的选项。

想法?谢谢。

【问题讨论】:

    标签: java parsing continuous-integration fitnesse fitnesse-slim


    【解决方案1】:

    我的解决方案

    我选择的方法是使用 SVNKit 以编程方式从 svn 拉入系统临时文件夹,然后在方法之间进行解析和比较,然后在完成后删除目录。

    对于执行时间,如果我提取并解析 200 个测试,大约需要 20 秒。然而,大约 90% 的时间都被简单地从 svn repo 中提取测试所占用。

    保留 repo 而不是删除它可以解决这个时间问题(显然除了第一次 pull),但是对于我的 jUnit 风格方法,为了封装,我可能会花费更长的时间。

    我确保预先解析了导入文件,以便在解析实际测试时可以使用其中的场景。

    我最终没有使用任何精简代码(但是,如果您想试一试,InstructionExecutor 类是我认为最有用/最接近解析器的类。

    这是一种相当简单的方法,我会推荐它。

    注意

    我从未尝试过 restful 方法,它可能会产生更快的执行时间,但是一旦成功将 repo 拉到机器上,我确实很享受这种简单性。

    【讨论】:

      猜你喜欢
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      相关资源
      最近更新 更多