当前位置: 首页 > 知识库问答 >
问题:

JDK版本更新,现在无法找到空手道测试[重复]

雷方伟
2023-03-14

今天,由于一些安全问题,我们的IT部门初始化了Java JDK 14的自动卸载。我下载了最新的JDK 16,并用它更新了所有项目设置:错误:java:invalid source release:8 in Intellij。这是什么意思?

我还更新了JAVA_HOME环境变量和路径变量。然而,当试图像往常一样使用IntelliJ运行我的空手道自动化测试时,我得到了一个错误,即没有找到测试。以下是尝试运行测试时的完整系统响应:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.intuit.karate.Runner$Builder.tagSelector(Runner.java:80)
    at com.intuit.karate.Runner.parallel(Runner.java:309)
    at com.intuit.karate.Runner$Builder.parallel(Runner.java:190)
    at com.intuit.karate.cli.Main.main(Main.java:59)
    at cucumber.api.cli.Main.main(Main.java:34)
Caused by: java.lang.NullPointerException: Cannot invoke "javax.script.ScriptEngine.createBindings()" because "com.intuit.karate.ScriptBindings.NASHORN" is null
    at com.intuit.karate.ScriptBindings.createBindings(ScriptBindings.java:160)
    at com.intuit.karate.core.Tags.<init>(Tags.java:158)
    at com.intuit.karate.core.Tags.<clinit>(Tags.java:48)
    ... 5 more

Process finished with exit code 1

显然,这是14以上的JDK版本的问题。我试图用这个视频排除故障:https://www.youtube.com/watch?v=8bHeDl3tdoo

但是在对pom.xml文件进行更改后,现在我得到了一个新的错误:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/allison_crenshaw/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/allison_crenshaw/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.14.0/log4j-slf4j-impl-2.14.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

我访问了它推荐的页面(http://www.slf4j.org/codes.html#multiple_bindings),但在阅读了解释后,我真的不明白如何继续。我试着添加它建议的排除,但是我的pom.xml文件真的很长,所以我不确定排除代码在大计划中属于哪里。我试着把它放在YouTube视频推荐的代码下面来解决绑定问题,但是我得到了关于包含多个SLF4J绑定的类路径的相同错误。

提前感谢任何帮助。

共有2个答案

周锐
2023-03-14

此SLF4J消息不是错误,只是警告:

SLF4J API被设计成一次绑定一个并且只有一个底层日志框架。如果类路径上存在多个绑定,SLF4J将发出警告,列出这些绑定的位置。

[...]

注意SLF4J发出的警告只是一个警告。即使存在多个绑定,SLF4J也会选择一个日志框架/实现并与之绑定。

[由我强调。]

如果选择的日志框架适合您,那么您不必担心。如果你想摆脱这个消息,你可以在你的项目上用mvn dependency:tree检查哪个依赖项拉入哪个日志框架并设置

左丘嘉木
2023-03-14

请升级到空手道1.0(1.1.0是目前最新版本),因为旧版本不支持更新的Java版本。

请注意,您可能需要做一些更改:https://github.com/intuit/karate/wiki/1.0-upgrade-guide

 类似资料:
  • 我无法在我的功能中运行空手道测试 不知道我错过了什么。对于api自动化世界来说是非常新的。非常感谢任何帮助。

  • 尝试运行示例BDD测试 背景:*配置ssl=true 场景:获取所有用户 给定url'https://jsonplaceholder.typicode.com/users“当方法获得状态200时 当语句'当方法get'执行,我得到错误错误:org.apache.http.conn.HttpHostConnectExcture:连接到jsonplaceholder.typicode.com:443[

  • 我正在和空手道加特林一起做一个POC,以了解这种组合对我们性能要求的可行性。到目前为止,我能够成功地运行空手道功能文件与gatling。 但我面临两个问题: 我不能更新模拟类名。demo(空手道gatling)项目模拟默认类名是CatsKarate模拟。我想给它重新命名。 问题是: 当我重命名它时,它开始抛出以下错误: 无法执行目标io.gatling:gatlin-maven-plugin:2.

  • 我无法使用CLI执行测试。跑者工作。我正在使用版本0.9.5.rc5和maven命令:“mvn test-f pom.xml exec:java-dexec.mainclass=com.intuit.karate.cli.main-dexec.args='-d'-dexec.classpathscope=test” 以下是错误:ERROR com.intuit.karate-driver conf

  • 我在打开开发Android应用程序的Eclipse IDE时遇到了一个问题。 Eclipse启动时出现此对话框 我看到这里有很多问题,但这对我的问题不起作用 我试着做了这篇文章的错误信息:这个Android SDK需要Android Developer Toolkit版本22.6.1或更高版本 当我按照步骤执行所有操作时,这个错误出现在我面前 错误消息: 最诚挚的问候!!