如何定义发布环境以从 C# 执行自动化的 Azure DevOps 测试计划?

问题描述 投票:0回答:2

我正在尝试从 C# 执行自动化的 Azure DevOps TestPlan,但我没有找到执行此操作的所有文档。

这是我的代码示例:

string  organizationName = "...";
string  projectName = "...";
int     planId = ...;
string  definitionName = "...";
int     definitionId = ...;
string  releaseName = "...";

Uri organizationUrl = await VssConnectionHelper.GetOrganizationUrlAsync(organizationName);
VssConnection connection = new VssConnection(organizationUrl, new VssClientCredentials());

BuildHttpClient buildClnt = connection.GetClient<BuildHttpClient>();
Build build = await buildClnt.GetLatestBuildAsync(projectName, definitionName);
Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference testPlanRef = new Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference(planId.ToString());
int[] pointIds = new int[] { 1 };

ReleaseHttpClient releaseClnt = connection.GetClient<ReleaseHttpClient>();
ReleaseStartMetadata releaseStartMetadata = new ReleaseStartMetadata()
{
  DefinitionId = definitionId
};
Release release = await releaseClnt.CreateReleaseAsync(releaseStartMetadata, projectName);

RunCreateModel testRunModel = new RunCreateModel(
  name                    : releaseName,
  pointIds                : pointIds,
  plan                    : testPlanRef,
  buildId                 : build.Id,
  isAutomated             : true,
  releaseUri              : release.Url
);

TestManagementHttpClient testMngmnt = connection.GetClient<TestManagementHttpClient>();

TestRun testRun = await testMngmnt.CreateTestRunAsync(testRunModel, projectName);

当我执行此操作时,我收到一条异常,并显示消息“必须指定发布 ID 和发布环境 ID”。 我在互联网上搜索了如何创建发布环境并将其传递给函数,但没有任何运气。

有谁可以帮我解决这个问题吗?

c# azure-devops automated-tests
2个回答
0
投票

我通过以下步骤解决了以编程方式启动自动化测试的问题:

  1. 为自动化测试的TestPlan创建一个TestRun
  2. 创建与测试计划链接的发布管道的发布
  3. 使用发布 ID 更新 TestRun
  4. 将Release中VsTest任务的引用更新到TestRun中
  5. 将包含 VsTest 任务的阶段的发布环境状态更新为 InPROgress

我不知道这是否是正确的方法,但它对我有用。


© www.soinside.com 2019 - 2024. All rights reserved.