cucumber - API测试 | 空手道 | 使用“读取”关键字时出现语法错误
问题描述
我正在尝试使用空手道进行 API 测试。由于请求和响应很长,我需要使用文件来使用它们。但是,'read' 关键字给了我一个语法错误:
Scenario: read data from a file Time elapsed: 0.005 sec <<< ERROR!
com.intuit.karate.exception.KarateException: syntax error: **'def xyz=read('sample.txt')'**, feature: examples/users/users.featu
re, line: 14
at com.intuit.karate.cucumber.CucumberUtils.runStep(CucumberUtils.java:247)
at com.intuit.karate.cucumber.KarateRuntime.runStep(KarateRuntime.java:80)
at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:102)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
at com.intuit.karate.junit4.Karate.runChild(Karate.java:134)
at com.intuit.karate.junit4.Karate.runChild(Karate.java:37)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at com.intuit.karate.junit4.Karate.run(Karate.java:144)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
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 org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
关于我可能缺少什么的任何建议?
解决方案
空手道对空白有点挑剔,在我看来这是一件好事,因为代码质量的这一方面是默认强制执行的,当你的测试套件规模增长时,你会感谢空手道。如果您使用 Cucumber-IDE 支持,无论如何这都会自动发生。
所以请=
用空白包围,你应该没问题。
* def xyz = read('sample.txt')
推荐阅读
- c++ - 函数中的自动变量在不同的调用中表示不同的类型是否合法?
- java - 用 Java 扫描服务器的网络流量
- c# - 在扩展方法中添加事件监听器
- asp.net-core - 如何获取数据注释验证的所有错误并在 ASP.NET Core 中覆盖其 JSON 表示?
- protocol-buffers - 在 android studio 上使用 protobuf 的问题
- mongodb - mongodb 为每个检索到的文档添加计数器
- oracle - Oracle ORDS 卸载期间的 IO 错误
- java - 使用 Spring RestTemplate 时如何避免 [] 的双重编码?
- c# - 为什么可以将静态类的公共静态字段设置为等于不同静态类的公共静态字段?
- google-cloud-platform - 为桶存储中的每个对象添加规则生命周期