对XML文件执行检查,例如Oracle OSB文件和Soap-UI测试文件

时间:2011-11-28 23:48:47

标签: maven jenkins xml-validation surefire schematron

寻找一种方法,我们可以对XML文件进行检查,而不仅仅是模式验证。已经找到了一些看起来很有趣的Schematron,但很难看到我们如何把这一切都归结为:

问题背景

我们正在处理Oracle OSB,它只生成一大堆XML文件。我们还为集成测试生成Soap-UI测试套件。

我们刚刚开始正式化我们的编码标准和开发指南,这些内容在执行代码审查时为我们提供了指导。然而,很多这些检查确实感觉它们可以自动化。很像checkstyle可以在我们的java代码中进行检查。

例如,在我们的Soap-UI测试中,我们希望确保每个soap请求都有Schema Compliance和Soap Response的断言。这个'检查'可以写成一个非常简单的xpath。

我们的OSB中的类似检查产生了XML,例如确保变量符合camelCase命名,资源路径不是指项目之外的文件,而是存在顶级错误处理。

理想解决方案

我们的构建在maven中运行,而soap-ui测试正在吐出确定格式的报告。我们使用jenkins作为我们的CI服务器,这可以获取这些surefire报告,这样我们就可以轻松查看测试结果并查看构建失败的原因。

我们希望找到能够为我们执行这些检查的内容,并让他们在jenkins中清楚地报告。

到目前为止我能搞清楚的最好:

  • 让maven运行执行schematron检查的ant任务
  • 找到将schematron输出转换为surefire输出的方法
  • 修改jenkins maven-runner以获取生成的万无一失的报告

但感觉我在这里陷入了兔子洞。如果这是解决这个问题的正确方法,我认为其他人已经解决了这个问题,但很难找到有关将schematron与CI工具或maven集成的有用信息。

架构师值得调查吗?

是否还有其他工具可以更贴合我们现有的设置?

2 个答案:

答案 0 :(得分:1)

您可能会尝试将XmlUnit用于此类目的。

您可以在该场景中以JUnit测试的形式编写支票。借助XmlUnit断言方法(例如assertXpathExistsassertXpathsEqual等,可以轻松执行基于XPath的简单检查。

可以使用自定义NodeTester实现更复杂的检查。

答案 1 :(得分:0)

一些Python代码可以提供帮助,对于一个简单的使用OSB的Checkstyle工作示例,请参阅:

http://www.javamonamour.org/2013/07/lintcheckstyle-for-osb.html

我过去曾使用过Schematron,但它不够灵活。