SoapUI测试运行器报告有关TestAssertionRegistry的错误

3

在我的测试用例中,我能够成功地运行并得到正确的结果,但是当通过测试运行器运行时,它会出现以下错误 -

ERROR [TestAssertionRegistry] Missing assertion for type [JsonPath Match]
ERROR [TestAssertionRegistry] Missing assertion for type [JsonPath Match]
ERROR [TestAssertionRegistry] Missing assertion for type [JsonPath Match]
ERROR [TestAssertionRegistry] Missing assertion for type [JsonPath Match]

这些错误是从哪里引起的?我已经禁用了所有的测试步骤,但没有用。看起来是从项目级别的xml中产生的。我正在尝试找出它生成的位置。

任何帮助都将不胜感激。


你是否安装了多个版本的SoapUI?这听起来像是你的项目是在5.x中创建的,而你正在使用4.x系列中的testrunner。 - SiKing
实际上,那正是发生的事情。我从专业版导出并移动到免费版。最终我不得不重新做测试来解决这个问题。如果你想把这个作为答案,我可以标记它为已回答。 - letstestthis
2个回答

2

JsonPath Match 是 SoapUI 5.2.x 版本的一个功能。你试图在4.x版本中打开该项目,但是项目文件不向下兼容。

我和你遇到了同样的问题:如何将它们全部删除。这是我如何“假装”删除它们:

  1. 用文本编辑器打开你的 *-soapui-project.xml 文件。
  2. 将所有出现的 type="JsonPath Match" 替换为 type="XPath Match" disabled="true"。空格和双引号都很重要!

虽然不太美观,但它能起作用。如果你想返回,请反转替换。


1
实际上,这是免费的5.x版本,没有JsonPath功能。话虽如此,我试图从所有测试中删除它,但无法做到。最后,我只好在免费版本中重写了这些测试。 - letstestthis
@letstestthis 有人给我点了个踩,所以我注意到了这个答案。我纠正了我的回答:JsonPath 从 5.2.x 版本开始就可用,即使是免费版也是如此。 - SiKing

1
作为后续,如果其他人正在使用API的专业版,并且拥有设置了该项目的专业客户端,但仍然遇到此错误,则可以通过Java API执行以下操作以使您的断言起作用:
//register the json path content assertion before the project loads
TestAssertionRegistry.getInstance().addAssertion(new JsonPathContentAssertion.Factory());

//loads the project, test suites, etc.
WsdlProjectPro project = new WsdlProjectPro(projectPath);

我不确定这是一个错误还是我使用API不正确,但似乎专业版的断言没有与免费版本的断言一起加载到该注册表中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接