gpt4 book ai didi

karate - 是否可以将 args 发送到 afterScenario 函数?

转载 作者:行者123 更新时间:2023-12-01 03:06:58 25 4
gpt4 key购买 nike

我在文档中看到可以在后台部分定义一个函数并在每个场景之后执行它。
见:https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/hooks/hooks.feature

但是我需要向这个函数发送 args 并且没有找到任何解决方案......

在文档中:

* configure afterScenario = 
"""
function(){
var info = karate.info;
karate.log('after', info.scenarioType + ':', info.scenarioName);
karate.call('after-scenario.feature', { caller: info.featureFileName });
}
"""

我想做什么:

工具/js/afterFunc.js:
function fn(args){
karate.log('after', args.msg);
}

myTest.feature:
* configure afterScenario = read('classpath:utils/js/afterFunc.js') {msg: 'Hello !'}

最佳答案

read函数将读取 afterFunc.js文件,但它忽略了 {msg: 'Hello !'}范围。

Scripts can call other scripts但是您不想立即调用脚本,是吗?
您想创建一个函数引用并将该引用分配给 afterScenario配置。

但这还不够。你要 curry 函数 - what is currying?

AFAIK read 不支持此功能直接地。

有一个解决方法。
您可以阅读 javascript 文件并创建一个函数来调用您的 after-scenario-function使用您选择的参数。

  Background:
* def fn = read('classpath:after-scenario-with-params.js')
* configure afterScenario =
"""
function() {
fn(karate.info, 'hello world');
}
"""
after-scenario-with-params.js包含以下js函数:
function fn(info, someParameter) {
karate.log('called after scenario:', info.scenarioName);
karate.log('some parameter: ' + someParameter);
}

就是这样。

我犯了一个 complete running example到我的 Karate 沙箱存储库。该 repo 是基于 gradle 和 groovy 的。我希望它有帮助。

关于karate - 是否可以将 args 发送到 afterScenario 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com