在jenkins中找不到json文件和调用的功能(使用Karate Framework)

时间:2017-11-15 14:54:27

标签: jenkins karate

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

但是当我在Jenkins中运行测试时,我有一个错误:

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
     

发现:features / xxx / foo.json,classpath:true         在com.intuit.karate.FileUtils.readFileAsString(FileUtils.java:104)         在com.intuit.karate.FileUtils.readFile(FileUtils.java:80)         在jdk.nashorn.internal.scripts.Script $重新编译$ 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)         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)         在cucumber.runtime.Utils $ 1.call(Utils.java:40)         在cucumber.runtime.Timeout.timeout(Timeout.java:16)         在cucumber.runtime.Utils.invoke(Utils.java:34)         在cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)         在cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)         在com.intuit.karate.cucumber.CucumberUtils.runStep(CucumberUtils.java:136)         在com.intuit.karate.cucumber.KarateRuntime.runStep(KarateRuntime.java:78)         在cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)         在cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)         在cucumber.runtime.model.CucumberScenario.runBackground(CucumberScenario.java:59)         在cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:42)         在cucumber.runtime.model.CucumberScenarioOutline.run(CucumberScenarioOutline.java:46)         在cucumber.runtime.model.CucumberFeature.run(CucumberFeature.java:165)         在com.intuit.karate.cucumber.CucumberRunner.lambda $ parallel $ 0(CucumberRunner.java:84)         at java.util.concurrent.FutureTask.run(FutureTask.java:266)         在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)         at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)         在java.lang.Thread.run(Thread.java:748)

`

有什么问题?

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题(严重缺乏细节),一切都可以在本地机器上正常工作,但在Jenkins上运行时不起作用。

你不能提供更多的堆栈跟踪吗?

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