使用Groovy和XMLUnit,我试图编写一个脚本来比较来自多个端点的web服务的xml输出。然而,试图让它从一个端点工作,然后在端点上迭代以比较输出,我继续得到以下错误:
Caught: groovy.lang.GroovyRuntimeException:
Could not find matching constructor for:
org.custommonkey.xmlunit.Diff(groovy.util.Node, groovy.util.Node)
groovy.lang.GroovyRuntimeException:
Could not find matching constructor for:
org.custommonkey.xmlunit.Diff(groovy.util.Node, groovy.util.Node)我确信这与我对XmlParser/XmlSlurper和XMLUnit (a.k.a )的缺乏经验有关。(新手)。我非常欣赏任何指向正确方向的指示。下面是导致异常的示例代码:
@Grab(group='xmlunit', module='xmlunit', version='1.5')
import org.custommonkey.xmlunit.*
def url = "http://www.webservicex.net//geoipservice.asmx/GetGeoIP?IPAddress=173.201.44.188"
def xmlParserResults = new XmlParser().parse("$url")
//same thing happens if I use...
//def xmlSlurperResults = new XmlSlurper().parse("$url")
def xmlDiff = new Diff(xmlParserResults, xmlParserResults)
assert xmlDiff.identical()提前谢谢你!
发布于 2013-10-07 19:17:02
url返回xml,Diff使用两个字符串进行比较(在您的示例中,您正在比较节点)。因此,比较最简单的方法是使用URL,而不是尝试使用XmlParser或XmlSlurper进行解析。
def url =
"http://www.webservicex.net//geoipservice.asmx/GetGeoIP?IPAddress=173.201.44.188"
def xmlString = new URL(url).text
def xmlDiff = new Diff(xmlString, xmlString)
assert xmlDiff.identical()如果上面只是一个示例,而不是一个命中多个端点的工作示例,那么重点是将xml输出表示为字符串,然后进行比较。
https://stackoverflow.com/questions/19232419
复制相似问题