我正在 Azure Devops 管道中使用 Newman CLI 运行 Postman 脚本。我试图从 Postman 中获取一个变量并返回管道以便在其他地方使用它,所以在 Postman 集合中我有;
console.log('##vso[task.setvariable variable=MyVariable]stringtobesaved');
这个过程在一定程度上有效。由于某种原因,纽曼正在拆分命令并给我一个短变量;
MyVariable = stringtobe
然后我可以在日志中看到单独的一行显示;
saved
如果我更改变量名称或变量值,它似乎总是在第 53 个字符处被剪切。如果碰巧我的变量名有点长,例如;
console.log('##vso[task.setvariable variable=MylongerVariable]stringtobesaved');
我收到一条错误消息,指出“##vso[task.setvariable variable=MylongerVar”不是有效命令。我相当确定这是纽曼的错,如果我这样做的话;
Write-Host "##vso[task.setvariable variable=IHaveAVeryLongVariable]AndAnEvenLongerValue"
然后就可以正常工作了。
谁能告诉我为什么它会被截断为 53 个字符,以及我是否可以增加限制?作为指导,我最终希望将大约 400 个字符放入变量中,因此 53 个字符是一个重要的限制。
我们可能有一个解决方案,事实证明测试名称不受限制或包装。通过添加 ##vso 命令作为测试,Azure 可以拾取它。举个例子,在测试后请求中;
pm.variables.set("testname","##vso[task.setvariable variable=MyReallyLongVariable]AndReallyLongValue"));
pm.test(pm.variables.get("testname"), () => {
pm.expect(true).to.eq(true);
});