我有一个输出变量siteToDeploy
和siteToStop
。我正在使用邮递员针对IIS管理API运行测试脚本。在其中一个请求的测试部分中,我尝试设置azure devops输出变量。它可以正常工作,但是由于某种原因,可变值被切断了。
这是邮递员中的测试脚本: console.log(pm.globals.get(“ siteName”))
var response = pm.response.json();
var startedSite = _.find(response.websites, function(o) { return o.name.indexOf(pm.globals.get("siteName")) > -1 && pm.globals.get("siteName") && o.status == 'started'});
var stoppedSite = _.find(response.websites, function(o) { return o.name.indexOf(pm.globals.get("siteName")) > -1 && o.status == 'stopped'});
if(stoppedSite && startedSite){
console.log('sites found');
console.log(stoppedSite.id)
console.log('##vso[task.setvariable variable=siteToDeploy;]' + stoppedSite.id);
console.log('##vso[task.setvariable variable=siteToStop;]' + startedSite.id);
}
这是命令行任务的输出,回显了$(siteToDeploy)变量。它正在设置,但不是整个值。
我尝试将其转义,但这没有任何效果。我还创建了一个静态命令行回显,其中设置了变量并且工作良好。因此,我不确定是纽曼问题还是Azure遇到问题。
答案 0 :(得分:0)
问题使我们成为Azure试图解析Newman控制台日志输出的方式。我不得不添加一个额外的Powershell任务来替换从Newman输出返回的'
。
这是什么样子:
##This task is only here because of how Newman is writing out the console.log
Param(
[string]$_siteToDeploy = (("$(siteToDeploy)") -replace "'",""),
[string]$_siteToStop = (("$(siteToStop)") -replace "'","")
)
Write-Host ("##vso[task.setvariable variable=siteToDeploy;]{0}" -f ($_siteToDeploy))
Write-Host ("##vso[task.setvariable variable=siteToStop;]{0}" -f ($_siteToStop))