已在后台设置的覆盖路径

时间:2018-07-16 13:13:32

标签: karate

docker run -i --rm --name myweb -w C:/users/Administrator/Documents -v "$(Agent.BuildDirectory):c:/users/Administrator/Documents/myweb:rw" vsbuildtools2017:web-v1 msbuild "myweb\s\CSS.sln" /nr:false /fl /flp:"logfile=myweb\s\css.sln-build.log" /p:platform="any cpu" /p:configuration="release" /p:RunCodeAnalysis=true /p:DeployOnBuild=true /p:PublishProfile=Release /p:PackageLocation="c:/users/Administrator/Documents/cssweb/a/PublishedPackage" 中设置path之后,有没有办法覆盖它?

我有很多测试(边界值),这些测试基本上仅取决于测试它们的功能。很好,我可以在Background:中设置path。 但是在奇怪的情况下,我需要链接多个调用,因此也需要链接Background变量。

如果我这样做

path

在每次Given path 'Client/GetClient' ... Given path 'GetServices' ... 调用中路径均被正确覆盖,但是如果我这样做,则

path

Background: * path 'Client/GetClient' ... Given path 'GetServices' 路径被附加到已经定义的Given路径上,因此它变为Background。 我希望它是第一次Client/GetClient/GetServices,第二次是Client/GetClient

1 个答案:

答案 0 :(得分:1)

是的,“附加”行为是设计使然,在RESTful URL-s的典型测试中效果很好!但是为什么不将背景路径移入测试?

Given path basePath, 'Client', 'GetClient'
...
Given path basePath, 'GetServices'

(编辑删除了错误的信息)。

另一个建议是不要使用path并且仅使用URL:

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