public DotNetTestCaseResult(DotNetTestRunInfo testRunInfo, HelixWorkItem helixWorkItem, TestCaseResult testCaseResult) { Debug.Assert(HelixUtil.TryGetHelixInfo(testCaseResult) == helixWorkItem.HelixInfo); TestRunInfo = testRunInfo; HelixWorkItem = helixWorkItem; TestCaseResult = testCaseResult; }
public async Task <DotNetTestRun> GetDotNetTestRunAsync( Build build, TestRun testRun, TestOutcome[] outcomes, bool includeSubResults, Action <Exception>?onError = null) { var buildInfo = build.GetBuildResultInfo(); var testCaseResults = await Server.ListTestResultsAsync(build.Project.Name, testRun.Id, outcomes, includeSubResults, onError).ConfigureAwait(false); var info = new DotNetTestRunInfo(build, testRun); var list = ToDotNetTestCaseResult(info, testCaseResults); return(new DotNetTestRun(info, new ReadOnlyCollection <DotNetTestCaseResult>(list)));
static List <DotNetTestCaseResult> ToDotNetTestCaseResult(DotNetTestRunInfo testRunInfo, List <TestCaseResult> testCaseResults) { var list = new List <DotNetTestCaseResult>(); foreach (var testCaseResult in testCaseResults) { var helixInfo = HelixUtil.TryGetHelixInfo(testCaseResult); if (helixInfo is null) { list.Add(new DotNetTestCaseResult(testRunInfo, testCaseResult)); continue; } if (HelixUtil.IsHelixWorkItem(testCaseResult)) { var helixWorkItem = new HelixWorkItem(testRunInfo, helixInfo.Value, testCaseResult); list.Add(new DotNetTestCaseResult(testRunInfo, helixWorkItem, testCaseResult)); } else { var workItemTestCaseResult = testCaseResults.FirstOrDefault(x => HelixUtil.IsHelixWorkItemAndTestCaseResult(workItem: x, test: testCaseResult)); if (workItemTestCaseResult is null) { // This can happen when helix errors and doesn't fully upload a result. Treat it like // a normal test case list.Add(new DotNetTestCaseResult(testRunInfo, testCaseResult)); } else { var helixWorkItem = new HelixWorkItem(testRunInfo, helixInfo.Value, workItemTestCaseResult); list.Add(new DotNetTestCaseResult(testRunInfo, helixWorkItem, testCaseResult)); } } } return(list); }
public DotNetTestCaseResult(DotNetTestRunInfo testRunInfo, TestCaseResult testCaseResult) { TestRunInfo = testRunInfo; TestCaseResult = testCaseResult; }
public DotNetTestRun(DotNetTestRunInfo testRunInfo, ReadOnlyCollection <DotNetTestCaseResult> testCaseResults) { TestRunInfo = testRunInfo; TestCaseResults = testCaseResults; }