private static (AllCoverageReports AllCoverageReports, TestResults AllTestResults) RunListOfCoverage(ICoverageDataObject coverageData, ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog, Guid workspaceGuid, IResourceCatalog catalog) { var allTestResults = new TestResults(); var allCoverageReports = new AllCoverageReports { StartTime = DateTime.Now }; var resources = catalog.GetResources <IWarewolfWorkflow>(workspaceGuid); var selectedResources = resources.Where(resource => coverageData.CoverageReportResourceIds.Contains(resource.ResourceID)).ToArray(); var testResultsTemp = new List <WorkflowTestResults>(); var coverageReportsTemp = new List <WorkflowCoverageReports>(); foreach (var coverageResourceId in coverageData.CoverageReportResourceIds) { var res = selectedResources.FirstOrDefault(o => o.ResourceID == coverageResourceId); if (res is null) { continue; } var workflowTestResults = new WorkflowTestResults(); testCatalog.Fetch(coverageResourceId) ?.ForEach(o => workflowTestResults.Add(o)); testResultsTemp.Add(workflowTestResults); var coverageReports = new WorkflowCoverageReports(res); testCoverageCatalog.Fetch(coverageResourceId) ?.ForEach(o => coverageReports.Add(o)); coverageReportsTemp.Add(coverageReports); } testResultsTemp.ForEach(o => allTestResults.Add(o)); coverageReportsTemp.ForEach(o => allCoverageReports.Add(o)); allTestResults.EndTime = DateTime.Now; allCoverageReports.EndTime = DateTime.Now; return(allCoverageReports, allTestResults); }
public void Add(WorkflowTestResults taskResult) { Results.Add(taskResult); }
static TestResults RunListOfTests(IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, IResourceCatalog catalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IServiceTestExecutorWrapper serviceTestExecutorWrapper) { var result = new TestResults(); var selectedResources = catalog.GetResources(workspaceGuid) ?.Where(resource => dataObject.TestsResourceIds.Contains(resource.ResourceID)).ToArray(); if (selectedResources != null) { var workflowTaskList = new List <Task <WorkflowTestResults> >(); foreach (var testsResourceId in dataObject.TestsResourceIds) { var workflowTask = Task <WorkflowTestResults> .Factory.StartNew(() => { var workflowTestTaskList = new List <Task <IServiceTestModelTO> >(); var res = selectedResources.FirstOrDefault(o => o.ResourceID == testsResourceId); if (res is null) { return(null); } else { var resourcePath = res.GetResourcePath(workspaceGuid).Replace("\\", "/"); var workflowTestResults = new WorkflowTestResults(res); var allTests = testCatalog.Fetch(testsResourceId); foreach (var(test, dataObjectClone) in from test in allTests let dataObjectClone = dataObject.Clone() select(test, dataObjectClone)) { dataObjectClone.Environment = new ExecutionEnvironment(); dataObjectClone.TestName = test.TestName; dataObjectClone.ServiceName = res.ResourceName; dataObjectClone.ResourceID = res.ResourceID; var lastTask = serviceTestExecutorWrapper.ExecuteTestAsync(resourcePath, userPrinciple, workspaceGuid, serializer, dataObjectClone); workflowTestTaskList.Add(lastTask); var report = testCoverageCatalog.FetchReport(res.ResourceID, test.TestName); var lastTestCoverageRun = report?.LastRunDate; if (report is null || test.LastRunDate > lastTestCoverageRun) { testCoverageCatalog.GenerateSingleTestCoverage(res.ResourceID, lastTask.Result); } } Task.WaitAll(workflowTestTaskList.Cast <Task>().ToArray()); foreach (var task in workflowTestTaskList) { workflowTestResults.Add(task.Result); } var testResults = workflowTestResults.Results; if (testResults.Count > 0) { testCoverageCatalog.GenerateAllTestsCoverage(res.ResourceName, res.ResourceID, testResults); } return(workflowTestResults); } }); if (workflowTask != null) { workflowTaskList.Add(workflowTask); } } Task.WaitAll(workflowTaskList.Cast <Task>().ToArray()); foreach (var task in workflowTaskList) { if (task.Result != null) { result.Add(task.Result); } } } result.EndTime = DateTime.Now; return(result); }