示例#1
0
        public async Task <List <IdentityRef> > GetTestResultOwnersAsync(IList <TestCaseResult> resultIds)
        {
            using (new PerformanceMeasurementBlock("Fetching Test result owners", _logger))
            {
                var fieldsToFetch = new List <string>
                {
                    FieldNameConstants.Owner
                };

                List <List <TestCaseResult> > chunks = resultIds.Split(MaxItemsSupported);

                IList <TestCaseResult>[] chunkResults = await chunks.ParallelSelectAsync(async chunk =>
                {
                    // TODO - retry
                    TestResultsQuery resultQuery = // RetryHelper.Retry(() =>
                                                   await _tcmClient.GetTestResultsByQueryAsync(_emailReportConfig.PipelineConfiguration.ProjectId, new TestResultsQuery
                    {
                        Fields  = fieldsToFetch,
                        Results = chunk
                    });
                    return(resultQuery.Results);
                });

                return(chunkResults.Merge()
                       .Where(tcr => IdentityRefHelper.IsValid(tcr.Owner))
                       .Select(tcr => tcr.Owner)
                       .DistinctBy(identity => IdentityRefHelper.GetUniqueName(identity).ToLowerInvariant())
                       .ToList());
            }
        }
示例#2
0
        private List <string> GetFailedTestOwners()
        {
            var mailAddresses    = new List <string>();
            var failedTestOwners = _reportData.FailedTestOwners;

            failedTestOwners.ForEach(identity =>
            {
                var mailAddress = IdentityRefHelper.GetMailAddress(identity);
                if (!string.IsNullOrWhiteSpace(mailAddress))
                {
                    mailAddresses.Add(mailAddress);
                }
            });

            _logger.LogInformation($"Failed Test owners - {string.Join(",", mailAddresses)}");
            return(mailAddresses);
        }