【发布时间】:2018-10-30 14:41:52
【问题描述】:
我正在尝试使用空手道检查验证 json 架构,但我正面临以下问题:
java.lang.RuntimeException: javascript 评估失败: Java.type('com.intuit.karate.demo.util.SchemaUtils'), java.lang.ClassNotFoundException: com.intuit.karate.demo.util.SchemaUtils
我的 pom 依赖项是:
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-apache</artifactId>
<version>${karate.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-junit4</artifactId>
<version>${karate.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.masterthought</groupId>
<artifactId>cucumber-reporting</artifactId>
<version>3.8.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.java-json-tools</groupId>
<artifactId>json-schema-validator</artifactId>
<version>2.2.8</version>
</dependency>
</dependencies>
Feature file syntax and json files locations
有人可以建议如何解决这个问题吗?
【问题讨论】:
-
我认为你很困惑。首先仔细阅读这部分文档:github.com/intuit/karate#schema-validation - 如果您仍然不明白,请按照以下流程操作:github.com/intuit/karate/wiki/How-to-Submit-an-Issue
-
实际上,我正在尝试进行与github.com/intuit/karate/blob/master/karate-demo/src/test/java/… 的第一个场景中提到的类似的验证
-
是的——这意味着你需要做一些高级的事情,比如 java inter-op。我认为您没有阅读文档,空手道实际上不建议使用 json-schema 验证并且具有自定义(高级)方法。无论如何-如果您仍然卡住-请查看我上面评论中的第二个链接-我没有其他帮助可以提供。万事如意
-
如果 json 响应不是很长,那么可以,它很容易使用空手道提供的模式验证。如果响应非常长且复杂,我不想手动创建模式文件,并且在准备好验证时,像其他 json 模式验证器一样会有所帮助。
-
正如我所说,一切顺利 :) 就个人而言,这是浪费时间 - 特别是因为开发团队无论如何都会从模式生成代码 - 你只是过度工程。然后是这个:twitter.com/karatedsl/status/878984854012022784