Azure管道单元测试和环境变量

时间:2020-04-22 07:07:19

标签: azure unit-testing azure-pipelines

努力寻找另一个答案的问题。我在单元测试中有以下代码(变量名称已更改)。这些信息用于我的集成测试

df

    Month   1   2   3   4   5   Slope
0   Oct     0.1 0.2 0.3 0.4 NaN 0.5
1   Nov     0.5 1.0 1.5 NaN NaN 0.1

当我的单元测试在本地运行时,这在本地可以正常工作。但是,当我的集成测试在Azure管道中运行时,它没有选择环境变量。

我以

的格式创建了它们

option__x1 ,其中_是双下划线。

如果环境变量是打开的,那么它将起作用,但是,如果将它们设置为秘密,则它将不起作用。

有人有什么主意吗?

1 个答案:

答案 0 :(得分:0)

Azure管道单元测试和环境变量

此行为是为了保护秘密变量免于在任务中暴露而设计的。

This documentation指出秘密变量为:

  • 未解密为环境变量。因此,默认情况下,您的构建步骤所运行的脚本和程序不会获得访问权限。
  • 已解密,可通过您的构建步骤进行访问。因此,您可以在密码参数中使用它们,也可以将它们显式传递到脚本或
    程序中的程序(例如$(password))。

这就是为什么您不能在任务中使用秘密变量的原因。

要解决此问题,我们需要显式映射秘密变量:

variables:
 GLOBAL_MYSECRET: $(mySecret) 
 GLOBAL_MY_MAPPED_ENV_VAR: foo 

steps:

- powershell: |

  env:
    MY_MAPPED_ENV_VAR: $(mySecret) # right way to map to an env variable

您可以检查this threadthe document以获得更多详细信息。

希望这会有所帮助。