public DotNetTestCaseResult(DotNetTestRunInfo testRunInfo, HelixWorkItem helixWorkItem, TestCaseResult testCaseResult) { Debug.Assert(HelixUtil.TryGetHelixInfo(testCaseResult) == helixWorkItem.HelixInfo); TestRunInfo = testRunInfo; HelixWorkItem = helixWorkItem; TestCaseResult = testCaseResult; }
public HelixWorkItem(TestRunInfo testRunInfo, HelixInfo helixInfo, TestCaseResult testCaseResult) { Debug.Assert(HelixUtil.TryGetHelixInfo(testCaseResult) == helixInfo); TestRunInfo = testRunInfo; HelixInfo = helixInfo; TestCaseResult = testCaseResult; }
static List <DotNetTestCaseResult> ToDotNetTestCaseResult(TestRunInfo 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); }