Karate 覆盖已在后台设置的路径

Karate 覆盖已在后台设置的路径,karate,Karate,在背景:中设置路径后,是否有方法覆盖路径 我有很多测试(边界值),它们基本上只随我测试它们的函数而变化。因此,我可以在Background中设置path,这很好。 但有时,我需要链接几个调用,因此也需要path变量 如果我这样做 Given path 'Client/GetClient' ... Given path 'GetServices' ... 每次调用path都会正确覆盖路径,但如果我这样做 Background: * path 'Client/GetClient' ... Gi

背景:
中设置路径后,是否有方法覆盖路径

我有很多测试(边界值),它们基本上只随我测试它们的函数而变化。因此,我可以在
Background
中设置
path
,这很好。 但有时,我需要链接几个调用,因此也需要
path
变量

如果我这样做

Given path 'Client/GetClient'
...
Given path 'GetServices'
...
每次调用
path
都会正确覆盖路径,但如果我这样做

Background:
  * path 'Client/GetClient'
...
Given path 'GetServices'
给定的
路径将被附加到已定义的
后台
路径,使其成为
Client/GetClient/GetServices
。 我希望第一次是
Client/GetClient
,第二次是
GetServices

是的,“append”行为是经过设计的,它在REST-ful URL-s的典型测试中运行良好!但是为什么不将背景路径移动到测试中呢

Given path basePath, 'Client', 'GetClient'
...
Given path basePath, 'GetServices'
(编辑删除的错误信息)

另一个建议是不要使用
路径
,而只使用URL:

Given url myUrl + '/basePath/Client/GetClient'
...
Given url myUrl + '/basePath/GetServices'

背景中已经定义了
给定url
之后,调用
给定url
作为重置
路径的机制,我并没有发现多少乐趣。使用
Background
的原因是,当我将测试复制到其他REST函数时,避免可能丢失手动路径更新。当链接调用时,我可以不使用。@PebermynteLars糟糕,
url
没有重置,编辑了我的答案。我可以添加一个新的关键字来“覆盖”路径,但这很难设计,也不值得,所以我认为现在最好避免使用路径的
Background
。。除非您有十几个左右的测试都以相同的方式调用端点,加上一两个变异路径以测试无效排列。这意味着您最终要声明一个变量,并在这十几个测试中重复
给定路径
,这样其他两个就不会被破坏,这不是很枯燥。@通过不使用
背景和使用数据驱动的
场景,很容易解决激励问题:P.S.测试的枯燥被高估:PI通过将需要路径操作的场景分离到单独的功能中,解决了我的特殊问题,但我必须重新审视数据驱动测试,看看这是否适合我。至于另一件事。。。如果我不关心测试自动化的DRY,我就不会把空手道作为邮递员的潜在替代品!