gpt4 book ai didi

c# - 如何使用 Team Foundation Server API 创建测试运行和结果?

转载 作者:可可西里 更新时间:2023-11-01 07:43:54 26 4
gpt4 key购买 nike

我找到了几个关于使用 TFS API 检索测试结果的示例,但没有关于以编程方式创建结果的文档。我的目标是创建一个轻量级的替代方案来使用 Microsoft 测试管理器来运行手动测试。有人对此有经验吗?有没有我遗漏的例子?

这是我目前所拥有的:

ITestCaseResult CreateNewTestCaseResult(ITestSuiteEntry testCaseEntry)
{
var run = testCaseEntry.TestSuite.Plan.CreateTestRun(false /* not automated */);
run.AddTest(testCaseEntry.TestCase.Id, suiteEntry.TestSuite.DefaultConfigurations[0].Id, suiteEntry.TestSuite.Plan.Owner);
run.Save(); // so that results object is created
return run.QueryResults()[0];
}

我不确定这是否是启动新运行的正确方法,我也不确定如何记录测试的每个操作的结果。

最佳答案

2012 年 8 月 15 日更新:

下面的示例现已集成到我的开源 TFS 测试步骤编辑器工具中。在最新版本中,它获得了将测试结果发布到 TFS 的能力。请参阅 GitHub 上的来源.


我现在有了发布测试结果的工作代码。请注意,以下代码接受 ITestPoint(这代表特定套件中的测试用例)并且有一些我的内部类(不包括在内)只为每个步骤提供结果和附件路径。

var tfsRun = _testPoint.Plan.CreateTestRun(false);

tfsRun.DateStarted = DateTime.Now;
tfsRun.AddTestPoint(_testPoint, _currentIdentity);
tfsRun.DateCompleted = DateTime.Now;
tfsRun.Save(); // so results object is created

var result = tfsRun.QueryResults()[0];
result.Owner = _currentIdentity;
result.RunBy = _currentIdentity;
result.State = TestResultState.Completed;
result.DateStarted = DateTime.Now;
result.Duration = new TimeSpan(0L);
result.DateCompleted = DateTime.Now.AddMinutes(0.0);

var iteration = result.CreateIteration(1);
iteration.DateStarted = DateTime.Now;
iteration.DateCompleted = DateTime.Now;
iteration.Duration = new TimeSpan(0L);
iteration.Comment = "Run from TFS Test Steps Editor by " + _currentIdentity.DisplayName;

for (int actionIndex = 0; actionIndex < _testEditInfo.TestCase.Actions.Count; actionIndex++)
{
var testAction = _testEditInfo.TestCase.Actions[actionIndex];
if (testAction is ISharedStepReference)
continue;

var userStep = _testEditInfo.SimpleSteps[actionIndex];

var stepResult = iteration.CreateStepResult(testAction.Id);
stepResult.ErrorMessage = String.Empty;
stepResult.Outcome = userStep.Outcome;

foreach (var attachmentPath in userStep.AttachmentPaths)
{
var attachment = stepResult.CreateAttachment(attachmentPath);
stepResult.Attachments.Add(attachment);
}

iteration.Actions.Add(stepResult);
}

var overallOutcome = _testEditInfo.SimpleSteps.Any(s => s.Outcome != TestOutcome.Passed)
? TestOutcome.Failed
: TestOutcome.Passed;

iteration.Outcome = overallOutcome;

result.Iterations.Add(iteration);

result.Outcome = overallOutcome;
result.Save(false);

关于c# - 如何使用 Team Foundation Server API 创建测试运行和结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6505812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com