Jor*_*ean 5 c# vstest azure-devops
需要传递到测试的测试执行上下文中的值通常通过 VSTS 中的“变量”传递。这些通常显示为环境变量。
这些值可能需要保密(来自服务主体的客户端机密、密码等)。但是,如果您单击VSTS变量窗口中的“锁定”按钮,对于一个给定的变量,它不会得到导出到作为环境变量的测试执行上下文(不同于非秘密变量),通过设计。
你如何传递秘密变量并在测试中检索它们?
秘密变量需要作为参数传递给 vstest.exe 进程作为“测试运行参数”。这些将在测试执行期间替换为 .runsettings 文件中的值。
高级步骤是:
将以下 XML 添加到文件中。请注意,您将“值”设置为什么并不重要。无论如何,它都会被 VSTS 测试任务覆盖。将其设置为虚拟值或将导致测试在本地成功的内容。
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<TestRunParameters>
<Parameter name="CLIENT_SECRET" value="secret" />
</TestRunParameters>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)将“TestContext”公共属性添加到您的测试类。该值将由测试运行器在运行时设置。请注意,此属性必须命名为 TestContext。
public TestContext TestContext { get; set; }
Run Code Online (Sandbox Code Playgroud)从 TestContext 变量中检索您的秘密
string clientSecret = TestContext.Properties["CLIENT_SECRET"].ToString();
Run Code Online (Sandbox Code Playgroud)将“设置文件”设置为您的 .runsettings 文件
$/project/unitTest.runsettings
Run Code Online (Sandbox Code Playgroud)在“覆盖测试运行参数”对话框中,添加以下内容(匹配您在 .runsettings 文件中为参数名称添加的键的拼写/大小写以及您添加到构建定义中的测试变量的拼写/大小写)价值):
-CLIENT_SECRET $(CLIENT_SECRET)
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1839 次 |
| 最近记录: |