private void StoreTestRunSummaryInEnvVar(TestRunSummary testRunSummary) { // Storing testrun summary in environment variable, which will be read by PublishPipelineMetadataTask and publish to evidence store. if (_calculateTestRunSummary) { TestResultUtils.StoreTestRunSummaryInEnvVar(_executionContext, testRunSummary, _testRunner, "PublishTestResults"); } }
public async Task <bool> PublishAsync(TestRunContext runContext, List <string> testResultFiles, PublishOptions publishOptions, CancellationToken cancellationToken = default(CancellationToken)) { try { TestDataProvider testDataProvider = ParseTestResultsFile(runContext, testResultFiles); var publishTasks = new List <Task>(); if (testDataProvider != null) { var testRunData = testDataProvider.GetTestRunData(); //publishing run level attachment Task <IList <TestRun> > publishtestRunDataTask = Task.Run(() => _testRunPublisher.PublishTestRunDataAsync(runContext, _projectName, testRunData, publishOptions, cancellationToken)); Task uploadBuildDataAttachmentTask = Task.Run(() => UploadBuildDataAttachment(runContext, testDataProvider.GetBuildData(), cancellationToken)); publishTasks.Add(publishtestRunDataTask); //publishing build level attachment publishTasks.Add(uploadBuildDataAttachmentTask); await Task.WhenAll(publishTasks); IList <TestRun> publishedRuns = publishtestRunDataTask.Result; _calculateTestRunSummary = _featureFlagService.GetFeatureFlagState(TestResultsConstants.CalculateTestRunSummaryFeatureFlag, TestResultsConstants.TFSServiceInstanceGuid); var isTestRunOutcomeFailed = GetTestRunOutcome(_executionContext, testRunData, out TestRunSummary testRunSummary); // Storing testrun summary in environment variable, which will be read by PublishPipelineMetadataTask and publish to evidence store. if (_calculateTestRunSummary) { TestResultUtils.StoreTestRunSummaryInEnvVar(_executionContext, testRunSummary, _testRunner, "PublishTestResults"); } // Check failed results for flaky aware // Fallback to flaky aware if there are any failures. bool isFlakyCheckEnabled = _featureFlagService.GetFeatureFlagState(TestResultsConstants.EnableFlakyCheckInAgentFeatureFlag, TestResultsConstants.TCMServiceInstanceGuid); if (isTestRunOutcomeFailed && isFlakyCheckEnabled) { var runOutcome = _testRunPublisherHelper.CheckRunsForFlaky(publishedRuns, _projectName); if (runOutcome != null && runOutcome.HasValue) { isTestRunOutcomeFailed = runOutcome.Value; } } return(isTestRunOutcomeFailed); } return(false); } catch (Exception ex) { _executionContext.Warning("Failed to publish test run data: " + ex.ToString()); } return(false); }
/// <summary> /// Exports the average test results. /// </summary> /// <param name="testResults">The test results.</param> /// <param name="aStarTestResults">The A* test results</param> /// <param name="commonInfoDataTable">The common information data table.</param> /// <param name="outputDirectory">The output directory.</param> private void ExportAverageTestResults(List <HarmonySearchAverageTestResult> testResults, AverageTestResult aStarTestResults, DataTable commonInfoDataTable, string outputDirectory) { // Group Harmony Search results by type var groupedTestResults = TestResultUtils.GroupTestResults(testResults); // Get Harmony Search results data tables var resultDataTables = new Dictionary <string, List <DataTable> >(); foreach (var(typeName, groupedResults) in groupedTestResults) { var groupDataTables = new List <DataTable>(); foreach (var(groupKey, groupResults) in groupedResults) { var dataTable = DataTableUtils.GetHarmonySearchTestResultsDataTable(groupKey, groupResults, typeName); groupDataTables.Add(dataTable); } resultDataTables[typeName] = groupDataTables; } var comparisonResults = testResults.Where(r => r.HarmonyGeneratorType == HarmonyGeneratorType.RandomDirectedStop) .Cast <AverageTestResult>() .ToList(); comparisonResults.Add(aStarTestResults); // Add A* result data tables var aStarResultDataTable = DataTableUtils.GetTestResultsDataTable("Comparison", comparisonResults); resultDataTables["AStar"] = new List <DataTable> { aStarResultDataTable }; // Export average result to Excel var filePath = Path.Combine(outputDirectory, "AverageTestResults"); _excelExportService.ExportToExcel(commonInfoDataTable, resultDataTables, filePath); }
public async Task <bool> PublishAsync(TestRunContext runContext, List <string> testResultFiles, PublishOptions publishOptions, CancellationToken cancellationToken = default(CancellationToken)) { try { TestDataProvider testDataProvider = ParseTestResultsFile(runContext, testResultFiles); var publishTasks = new List <Task>(); if (testDataProvider != null) { var testRunData = testDataProvider.GetTestRunData(); //publishing run level attachment publishTasks.Add(Task.Run(() => _testRunPublisher.PublishTestRunDataAsync(runContext, _projectName, testRunData, publishOptions, cancellationToken))); //publishing build level attachment publishTasks.Add(Task.Run(() => UploadBuildDataAttachment(runContext, testDataProvider.GetBuildData(), cancellationToken))); await Task.WhenAll(publishTasks); _calculateTestRunSummary = _featureFlagService.GetFeatureFlagState(TestResultsConstants.CalculateTestRunSummaryFeatureFlag, TestResultsConstants.TFSServiceInstanceGuid); var runOutcome = GetTestRunOutcome(_executionContext, testRunData, out TestRunSummary testRunSummary); // Storing testrun summary in environment variable, which will be read by PublishPipelineMetadataTask and publish to evidence store. if (_calculateTestRunSummary) { TestResultUtils.StoreTestRunSummaryInEnvVar(_executionContext, testRunSummary, _testRunner, "PublishTestResults"); } return(runOutcome); } return(false); } catch (Exception ex) { _executionContext.Warning("Failed to publish test run data: " + ex.ToString()); } return(false); }
private Task PublishTestResultsDataToEvidenceStore(IExecutionContext context) { TestResultUtils.StoreTestRunSummaryInEnvVar(context, testRunSummary, testRunner, name, description); return(Task.FromResult(0)); }