面对java.lang.ClassNotFoundException:尝试验证架构时com.intuit.karate.demo.util.SchemaUtils

时间:2018-10-30 14:41:53

标签: testing karate

我正在尝试使用空手道检查验证json模式,而我正面临着这个问题:

java.lang.RuntimeException:JavaScript评估失败:Java.type('com.intuit.karate.demo.util.SchemaUtils'),java.lang.ClassNotFoundException:com.intuit.karate.demo.util.SchemaUtils < / p>

我的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

有人可以建议如何解决此问题吗?

3 个答案:

答案 0 :(得分:1)

请提供完整的堆栈跟踪信息以及源代码。 您是否计划使用此软件包“ com.intuit.karate.demo.util.SchemaUtils”(不知道它是否默认包含在库中)

编辑:

撇开不良的编码习惯:您可以进入脚本小子模式,从实际的演示中获取com.intuit.karate.demo.util.SchemaUtils -package,然后可能再也不会收到错误了。如前所述,您可能误解了如何使用该库。您可能正在从教程/演示中调用函数,这些函数当然不在您的项目中。

答案 1 :(得分:1)

我删除了此依赖关系,并且一切正常。

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.22</version>
    </dependency>

答案 2 :(得分:0)

SchemaUtils是空手道演示中可用的类,未与空手道核心一起打包

因此,如果要使用SchemaUtils复制该类并将其保留在项目中,并为Java互操作提供正确的包路径

例如

Java.type('<your new package>.SchemaUtils')