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

空手道:如果包含参数并在“独立”模式下运行,场景将失败

於功
2023-03-14

当我试图运行一个包含内置__arg变量的Scenario作为'独立'(而不是'调用')时,我遇到了一个问题,然后我的测试失败了,出现了一个错误(我没有按顺序@忽略被调用的一个在调用和独立模式下使用它):

evaluation (js) failed: __arg, javax.script.ScriptException: ReferenceError: "__arg" is not defined in <eval> at line number 1
stack trace: jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470)

以下两个简单的特性应该足以重现。

called-standalone.feature:

Feature: Called + Stand-alone Scenario
  Scenario: Should not fail on __arg when run as stand-alone
    * def a = __arg
    * print a

呼叫者特色:

Feature: Caller
  Scenario: call without args
    When def res = call read('called-standalone.feature')
    Then match res.a == null

  Scenario: call with args
    When def res = call read('called-standalone.feature') {some: 42}
    Then match res.a == {some: 42}

将这两个特性放入骨架项目并运行mvn test将显示错误。

我希望这会起作用,因为医生说“所谓的”空手道脚本…可以在“独立”模式下像“正常”空手道测试一样运行”。

“被调用的”空手道脚本不需要使用任何特殊关键字“返回”数据,如果需要,可以在“独立”模式下像“正常”空手道测试一样运行

共有1个答案

蒋权
2023-03-14

所有空手道变量必须在运行时“定义”。这是一条不能放松的规则。

所以你应该重新设计你的脚本。好的是你可以使用空手道。get()设置“默认值”。

* def a = karate.get('__arg', null)

这应该能回答你的问题。

 类似资料:
  • 我正试图针对一些案例运行一个简单的测试。我在Windows上使用VS代码,带有空手道扩展和独立空手道。罐子 以下是我的特色: Json有点像 这一切都很好,直到案例数量达到300个左右,在执行结束时就会冻结,并且永远不会在控制台中生成摘要。 对于较小的数字,它可以正常工作,并且摘要总是指示,如果API在~1秒内响应,那么经过的时间也支持这一点。 我的问题是,把冻结放在一边,我可以使用独立JAR并行

  • 我已经在我的本地安装了mesos,并按照mesos设置中提到的进行了配置。现在我想在本地机器上安装的mesos上运行spark。我已经根据官方文档配置了spark,并在我的本地机器上运行了单节点hadoop集群。Spark二进制包被复制到hdfs根目录,我已经在spark-env.sh中设置了以下属性: 是Spark-Defaults.conf:

  • 我在功能文件中编写了一系列场景,其中包含断言。如果第一个场景的断言失败,Specflow将跳过它之后的所有场景。我希望我所有的场景都能继续运行,即使其中一个像NUnit一样失败。我使用SpecRun作为测试提供商,我在SpecFlow网站上找不到任何对我有帮助的东西。可能是我的应用程序中缺少了什么。配置文件? 以下是我的App.config文件:

  • 问题内容: 一个人如何从Python调用一个包含管道的shell命令并捕获输出? 假设命令是这样的: 我想要做的与Perl相当的东西是这样的: 问题答案: 使用subprocess.PIPE,如子流程文档部分“替换外壳管道”中所述: 或者,使用模块,管道成为功能的组合:

  • 我在独立的Kubernetes(sesion)模式下运行Apache Flink,没有作业管理器HA。但我需要部署作业管理器HA,因为只有在HA模式下,Flink才能持久化(可以在作业管理器重新启动后保存作业)。Flink在专用的kubernetes命名空间中运行,我只对该命名空间拥有权限。 使用本文启用HA:https://ci.apache.org/projects/flink/flink-d

  • 我有一个示例项目,其中使用了Maven、TestNg和Cucumber。我使用testrunner类运行测试。 我创建了一个包含两个方案的功能文件,但两个方案都失败了。我有两个具有不同功能文件的测试运行者类 - 1。特征文件指向所有功能,2。指向仅失败的方案。 当我尝试重新运行场景时,它只运行一个场景。 1- 请告知如何执行所有失败的方案。