private async Task <TestResultData[]> GetTestResultsWithBugRefsAsync(TestResultsDetailsForGroup resultsForGroup) { var results = await resultsForGroup.Results .ParallelSelectAsync(async resultIdObj => { var resultData = new TestResultData(); resultData.TestResult = await _tcmApiHelper.GetTestResultByIdAsync(int.Parse(resultIdObj.TestRun.Id), resultIdObj.Id); // Remove flaky tests if (resultData.TestResult.IsTestFlaky()) { return(null); } resultData.AssociatedBugRefs = await _tcmApiHelper.QueryTestResultBugsAsync( resultData.TestResult.AutomatedTestName, resultData.TestResult.Id); return(resultData); }); //Remove all null values from array results = results.Where(r => r != null).ToArray(); return(results); }
/// <summary> /// Get Duration, TotalTests & test count by outcome /// Calculating total duration, as the tcm data has duration by test outcome only. /// </summary> protected void ParseBaseData(TestResultsDetailsForGroup resultsForGroup, TestSummaryItem summaryItem) { summaryItem.TotalTests = resultsForGroup.Results.Count; summaryItem.TestCountByOutCome = new Dictionary <TestOutcome, int>(); foreach (var aggregatedResultsByOutcome in resultsForGroup.ResultsCountByOutcome) { summaryItem.TestCountByOutCome[aggregatedResultsByOutcome.Key] = aggregatedResultsByOutcome.Value.Count; summaryItem.Duration += aggregatedResultsByOutcome.Value.Duration; } }
private static TestRunInfo ReadGroupByValue(TestResultsDetailsForGroup resultsForGroup) { var jobj = resultsForGroup.GroupByValue as JObject; if (jobj == null) { throw new InvalidTestResultDataException("Unable to parse json value for GroupByValue"); } var serializableRunInfo = jobj.ToObject <TestRunInfo>(); if (serializableRunInfo == null || serializableRunInfo.Id <= 0) { throw new InvalidTestResultDataException($"Invalid run id detected in json - {serializableRunInfo?.Id}"); } return(serializableRunInfo); }
/// <summary> /// Returns a summary item for a given tcm data object for a test run. /// </summary> private TestSummaryItem GetTestRunSummaryInfo(TestResultsDetailsForGroup resultsForGroup) { _logger.LogInformation($"Getting Test summary data for test run - {resultsForGroup.GroupByValue}"); TestRunInfo runInfo = ReadGroupByValue(resultsForGroup); var summaryItem = new TestSummaryItem { Name = string.IsNullOrWhiteSpace(runInfo.Name) ? runInfo.Id.ToString() : runInfo.Name, Id = runInfo.Id.ToString() }; ParseBaseData(resultsForGroup, summaryItem); return(summaryItem); }
public override string GetGroupByValue(TestResultsDetailsForGroup group) { return(ReadGroupByValue(group).Name); }
public abstract string GetGroupByValue(TestResultsDetailsForGroup group);
public override string GetGroupByValue(TestResultsDetailsForGroup group) { return(GetPriority(group.GroupByValue).ToString()); }