我有一个特性文件,它有一个场景,用于为我们的api生成一个令牌。我们有能力传递一个声明,可以用来记录创建令牌的测试。如果不将名称传递给被调用的特性(并更新3000次测试),我们如何才能获得调用特性的名称,以便将其记录在令牌中?我们希望能够在令牌场景中进行更改,以集中更改。我可以通过karate.info.scenarioName获得场景名称,但这给出了被调用的场景名,而不是父调用场景。
发布于 2022-07-22 04:14:42
我认为最好的选择是在调用特性中定义一个额外的变量,如下所示:
* def caller = karate.feature.fileName并利用变量总是在所谓的特性中“可见”的原则。如果您想要执行“安全”获取,请使用karate.get()
* def whoCalledMe = karate.get('caller')您所要求的是可能的,但我不愿意分享这一点,因为这些都是不适合使用的内部API:
* def caller = karate.engine.runtime.caller.parentRuntime.scenario.feature这将为您提供对空手道Java对象com.intuit.karate.core.Feature的引用。
karate.scenario和karate.feature API在1.0以后可用,不再推荐karate.info:https://github.com/karatelabs/karate/wiki/1.0-upgrade-guide#karateinfo-deprecated
https://stackoverflow.com/questions/73072878
复制相似问题