寻找一种方法,我们可以对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中清楚地报告。
到目前为止我能搞清楚的最好:
但感觉我在这里陷入了兔子洞。如果这是解决这个问题的正确方法,我认为其他人已经解决了这个问题,但很难找到有关将schematron与CI工具或maven集成的有用信息。
架构师值得调查吗?
是否还有其他工具可以更贴合我们现有的设置?
答案 0 :(得分:1)
您可能会尝试将XmlUnit用于此类目的。
您可以在该场景中以JUnit测试的形式编写支票。借助XmlUnit断言方法(例如assertXpathExists
,assertXpathsEqual
等,可以轻松执行基于XPath的简单检查。
可以使用自定义NodeTester实现更复杂的检查。
答案 1 :(得分:0)
一些Python代码可以提供帮助,对于一个简单的使用OSB的Checkstyle工作示例,请参阅:
http://www.javamonamour.org/2013/07/lintcheckstyle-for-osb.html
我过去曾使用过Schematron,但它不够灵活。