jenkins 中找不到的 json 文件和调用的功能(使用空手道框架) [英] json files and called features not found in jenkins (with Karate Framework)

查看:27
本文介绍了jenkins 中找不到的 json 文件和调用的功能(使用空手道框架)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<小时>

在我的功能中,我有:* def bar = read('classpath:features/xxx/foo.json')

但是当我在 Jenkins 中运行测试时,出现错误:

<块引用>

java.lang.RuntimeException: javascript 评估失败:read('classpath:features/xxx/foo.json')在 com.intuit.karate.Script.evalInNashorn(Script.java:423)在 com.intuit.karate.Script.evalInNashorn(Script.java:394)在 com.intuit.karate.Script.eval(Script.java:316)在 com.intuit.karate.Script.eval(Script.java:194)在 com.intuit.karate.Script.assign(Script.java:656)在 com.intuit.karate.Script.assign(Script.java:587)在 com.intuit.karate.StepDefs.def(StepDefs.java:265)在✽.* def u = read('classpath:features/xxx/foo.json')(features/XXX/calling.feature:7)引起:com.intuit.karate.exception.KarateFileNotFoundException:文件不是

找到:features/xxx/foo.json,类路径:true在 com.intuit.karate.FileUtils.readFileAsString(FileUtils.java:104)在 com.intuit.karate.FileUtils.readFile(FileUtils.java:80)在 jdk.nashorn.internal.scripts.Script$Recompilation$8$15A$^eval_.L:1(:3)在 jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:639)在 jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494)在 jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)在 jdk.nashorn.api.scripting.ScriptObjectMirror.call(ScriptObjectMirror.java:117)在 jdk.nashorn.internal.scripts.Script$19$^eval_.:program(:1)在 jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637)在 jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494)在 jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)在 jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:449)在 jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406)在 jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402)在 jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155)在 javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)在 com.intuit.karate.Script.evalInNashorn(Script.java:419)在 com.intuit.karate.Script.evalInNashorn(Script.java:394)在 com.intuit.karate.Script.eval(Script.java:316)在 com.intuit.karate.Script.eval(Script.java:194)在 com.intuit.karate.Script.assign(Script.java:656)在 com.intuit.karate.Script.assign(Script.java:587)在 com.intuit.karate.StepDefs.def(StepDefs.java:265)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在 java.lang.reflect.Method.invoke(Method.java:498)在黄瓜.runtime.Utils$1.call(Utils.java:40)在黄瓜.runtime.Timeout.timeout(Timeout.java:16)在黄瓜.runtime.Utils.invoke(Utils.java:34)在cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)在黄瓜.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)在 com.intuit.karate.cucumber.CucumberUtils.runStep(CucumberUtils.java:136)在 com.intuit.karate.cucumber.KarateRuntime.runStep(KarateRuntime.java:78)在黄瓜.runtime.model.StepContainer.runStep(StepContainer.java:44)在黄瓜.runtime.model.StepContainer.runSteps(StepContainer.java:39)在黄瓜.runtime.model.CucumberScenario.runBackground(CucumberScenario.java:59)在黄瓜.runtime.model.CucumberScenario.run(CucumberScenario.java:42)在cucumber.runtime.model.CucumberScenarioOutline.run(CucumberScenarioOutline.java:46)在黄瓜.runtime.model.CucumberFeature.run(CucumberFeature.java:165)在 com.intuit.karate.cucumber.CucumberRunner.lambda$parallel$0(CucumberRunner.java:84)在 java.util.concurrent.FutureTask.run(FutureTask.java:266)在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)在 java.lang.Thread.run(Thread.java:748)

`

怎么了?

解决方案

如果我正确理解您的问题(它严重缺乏细节),那么在您的本地机器上一切正常,但在 Jenkins 上运行时无法正常工作.

难道您没有更多的堆栈跟踪要提供吗?

可能有很多可能的原因.也许在 Jenkins 上,非 Java 文件没有正确复制到 target/test-classes.检查 Jenkins 上的 pom.xml 是否没有因为 Maven 配置文件而表现不同.您应该与您的 Jenkins 管理员/CI 团队合作来解决这个问题.


In my feature I have: * def bar = read('classpath:features/xxx/foo.json')

But when I run tests in Jenkins, I have an error:

java.lang.RuntimeException: javascript evaluation failed: read('classpath:features/xxx/foo.json')
  at com.intuit.karate.Script.evalInNashorn(Script.java:423)
  at com.intuit.karate.Script.evalInNashorn(Script.java:394)
  at com.intuit.karate.Script.eval(Script.java:316)
  at com.intuit.karate.Script.eval(Script.java:194)
  at com.intuit.karate.Script.assign(Script.java:656)
  at com.intuit.karate.Script.assign(Script.java:587)
  at com.intuit.karate.StepDefs.def(StepDefs.java:265)
  at ✽.* def u = read('classpath:features/xxx/foo.json')(features/XXX/calling.feature:7)
Caused by: com.intuit.karate.exception.KarateFileNotFoundException: file not

found: features/xxx/foo.json, classpath: true at com.intuit.karate.FileUtils.readFileAsString(FileUtils.java:104) at com.intuit.karate.FileUtils.readFile(FileUtils.java:80) at jdk.nashorn.internal.scripts.Script$Recompilation$8$15A$^eval_.L:1(:3) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:639) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) at jdk.nashorn.api.scripting.ScriptObjectMirror.call(ScriptObjectMirror.java:117) at jdk.nashorn.internal.scripts.Script$19$^eval_.:program(:1) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:449) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) at com.intuit.karate.Script.evalInNashorn(Script.java:419) at com.intuit.karate.Script.evalInNashorn(Script.java:394) at com.intuit.karate.Script.eval(Script.java:316) at com.intuit.karate.Script.eval(Script.java:194) at com.intuit.karate.Script.assign(Script.java:656) at com.intuit.karate.Script.assign(Script.java:587) at com.intuit.karate.StepDefs.def(StepDefs.java:265) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at cucumber.runtime.Utils$1.call(Utils.java:40) at cucumber.runtime.Timeout.timeout(Timeout.java:16) at cucumber.runtime.Utils.invoke(Utils.java:34) at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38) at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37) at com.intuit.karate.cucumber.CucumberUtils.runStep(CucumberUtils.java:136) at com.intuit.karate.cucumber.KarateRuntime.runStep(KarateRuntime.java:78) at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44) at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39) at cucumber.runtime.model.CucumberScenario.runBackground(CucumberScenario.java:59) at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:42) at cucumber.runtime.model.CucumberScenarioOutline.run(CucumberScenarioOutline.java:46) at cucumber.runtime.model.CucumberFeature.run(CucumberFeature.java:165) at com.intuit.karate.cucumber.CucumberRunner.lambda$parallel$0(CucumberRunner.java:84) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

`

What is wrong?

解决方案

If I understand your question correctly (it severely lacks details), everything works fine on your local machine, but does not work when running on Jenkins.

Don't you have a little bit more stack trace to provide ?

There could be so many possible reasons. Maybe on Jenkins, non-Java files are not being copied correctly to target/test-classes. Check whether the pom.xml on Jenkins is not behaving differently for example because of a Maven profile. You should work with your Jenkins admin / CI team to solve this.

这篇关于jenkins 中找不到的 json 文件和调用的功能(使用空手道框架)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆