【问题标题】:TFS integration - how to set environment variables accessible from test codeTFS 集成 - 如何设置可从测试代码访问的环境变量
【发布时间】:2017-10-25 06:36:20
【问题描述】:

我正在使用扩展程序编写与我们服务器的 TFS / VSTS 集成。

我想在构建之后显示额外的数据,特别是我想显示一个 IFRAME 并导航到我们的服务器,导航到特定的 URL,部分由动态生成的唯一字符串确定。

我有生成字符串的函数,但我需要在测试开始运行之前将其设置为环境变量。这很重要,因为测试需要在服务器上创建该字符串。

我搜索了文档、示例和其他地方,但找不到设置动态生成的环境变量然后运行测试的完整示例。

我该怎么做?

【问题讨论】:

  • 测试是否通过构建中的以下任务运行?
  • 如果您的问题是测试是否在下一步运行 - 可以安排,因为测试步骤将在构建步骤之后进行。如果您考虑特定任务,那么您似乎忘记说明任务名称... :-)

标签: tfs azure-devops azure-pipelines-build-task


【解决方案1】:

您可以通过Logging Commands添加/设置一个环境变量(例如PS:Write-Host "##vso[task.setvariable variable=testvar;]testvalue"),然后以下任务可以将该变量作为通用变量。

使用日志记录命令,您还可以在构建摘要中添加其他信息。 (##vso[task.uploadsummary]local file path)

您还可以部署构建结果扩展来显示其他信息。 vsts-extension-samples

【讨论】:

  • 谢谢,我已经遇到过这个例子。我缺少的是如何在扩展代码中编写一个实际设置该变量的任务(以及什么类型的任务)。有什么参考资料吗?
  • @ItaiBar-Haim 很多任务都可以做到,比如PowerShell任务:Write-Host "##vso[task.setvariable variable=testvar;]testvalue";命令行任务:echo "##vso[task.setvariable variable=testvar;]testvalue"; NodeJS:Console.log("##vso[task.setvariable variable=testvar;]testvalue")。扩展是否意味着构建任务扩展?如果是这样,同样的方法,只需调用 Write-Host、Console.log 等...
  • 当使用像你提到的那些内置任务时,据我了解,我只能传递一个常量值,而不是动态生成的东西。为此,我需要创建一个新任务。我说的对吗?
  • @ItaiBar-Haim 不,你也可以在同一个任务中生成一个字符串,然后设置变量值。
  • 基于构建信息对象?如果有,怎么做?
猜你喜欢
  • 2020-06-26
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 2019-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多