在我的功能中,我有:
* 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)
`
有什么问题?
答案 0 :(得分:1)
如果我理解你的问题(严重缺乏细节),一切都可以在本地机器上正常工作,但在Jenkins上运行时不起作用。
你不能提供更多的堆栈跟踪吗?
可能有很多可能的原因。也许在Jenkins上,非Java文件没有被正确复制到target/test-classes
。检查Jenkins上的pom.xml
是否因为Maven配置文件而表现不同。您应该与Jenkins管理员/ CI团队合作解决此问题。