占位符替换为内联(场景)变量,而不是全局(背景)变量
Placeholders replaced for inline (Scenario) variables, not for global (Background) ones
我想在同一功能文件的所有场景中重复使用一个有效载荷,使用正确设置有效载荷参数的场景大纲和示例。
我注意到我在背景部分定义的负载 json 没有替换它们的占位符变量。
(Java 9, 空手道 0.9.0)
为了展示我的问题,我将其归结为:
Feature: Some Test
Background:
* def globalVariable = {name: <name>}
Scenario Outline: Successfully register a single valid user
* def inlineVariable = {name: <name>}
* print "from global : ", globalVariable
* print "from inline : ", inlineVariable
Examples:
| name |
| 'Bob' |
结果:
16:38:00.602 [main] INFO com.intuit.karate - [print] from global : {
"name": "<name>"
}
16:38:00.608 [main] INFO com.intuit.karate - [print] from inline : {
"name": "Bob"
}
谁能给我解释一下,为什么全局 json 结构 'globalVariable' 没有替换变量?
因为占位符仅在 Scenario Outline
内有效。我认为在 Background
中支持真的很混乱,因为你可以在同一个 Feature
.
中使用普通的 Scenario
-s
因此,请在 Scenario Outline
正文中进行替换 - 即使这意味着您要重复一两行。 IMO 没什么大不了的。
我想在同一功能文件的所有场景中重复使用一个有效载荷,使用正确设置有效载荷参数的场景大纲和示例。 我注意到我在背景部分定义的负载 json 没有替换它们的占位符变量。
(Java 9, 空手道 0.9.0) 为了展示我的问题,我将其归结为:
Feature: Some Test
Background:
* def globalVariable = {name: <name>}
Scenario Outline: Successfully register a single valid user
* def inlineVariable = {name: <name>}
* print "from global : ", globalVariable
* print "from inline : ", inlineVariable
Examples:
| name |
| 'Bob' |
结果:
16:38:00.602 [main] INFO com.intuit.karate - [print] from global : {
"name": "<name>"
}
16:38:00.608 [main] INFO com.intuit.karate - [print] from inline : {
"name": "Bob"
}
谁能给我解释一下,为什么全局 json 结构 'globalVariable' 没有替换变量?
因为占位符仅在 Scenario Outline
内有效。我认为在 Background
中支持真的很混乱,因为你可以在同一个 Feature
.
Scenario
-s
因此,请在 Scenario Outline
正文中进行替换 - 即使这意味着您要重复一两行。 IMO 没什么大不了的。