public static DataListFormat RunMultipleTestBatches(this IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, DataListFormat formatter, IResourceCatalog catalog, ITestCatalog testCatalog, ref string executePayload) { foreach (var testsResourceId in dataObject.TestsResourceIds) { var allTests = testCatalog.Fetch(testsResourceId); var taskList = new List <Task>(); var testResults = new List <IServiceTestModelTO>(); foreach (var test in allTests) { dataObject.ResourceID = testsResourceId; var dataObjectClone = dataObject.Clone(); dataObjectClone.Environment = new ExecutionEnvironment(); dataObjectClone.TestName = test.TestName; var res = catalog.GetResource(GlobalConstants.ServerWorkspaceID, testsResourceId); var resourcePath = res.GetResourcePath(GlobalConstants.ServerWorkspaceID).Replace("\\", "/"); var lastTask = ServiceTestExecutor.GetTaskForTestExecution(resourcePath, userPrinciple, workspaceGuid, serializer, testResults, dataObjectClone); taskList.Add(lastTask); } Task.WaitAll(taskList.ToArray()); formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var objArray = (from testRunResult in testResults where testRunResult != null select testRunResult.BuildTestResultForWebRequest() ).ToList(); executePayload = executePayload + Environment.NewLine + serializer.Serialize(objArray); } return(formatter); }
static List <IServiceTestModelTO> RunListOfTests(IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, IResourceCatalog catalog, ITestCatalog testCatalog) { var testResults = new List <IServiceTestModelTO>(); var taskList = new List <Task>(); foreach (var testsResourceId in dataObject.TestsResourceIds) { var allTests = testCatalog.Fetch(testsResourceId); foreach (var test in allTests) { var dataObjectClone = dataObject.Clone(); dataObjectClone.Environment = new ExecutionEnvironment(); dataObjectClone.TestName = test.TestName; var res = catalog.GetResource(GlobalConstants.ServerWorkspaceID, testsResourceId); dataObjectClone.ServiceName = res.ResourceName; dataObjectClone.ResourceID = res.ResourceID; var resourcePath = res.GetResourcePath(GlobalConstants.ServerWorkspaceID).Replace("\\", "/"); var lastTask = ServiceTestExecutor.GetTaskForTestExecution(resourcePath, userPrinciple, workspaceGuid, serializer, testResults, dataObjectClone); taskList.Add(lastTask); } } Task.WaitAll(taskList.ToArray()); return(testResults); }
void SaveTests(Guid oldResourceId, Guid newResourceId) { var serviceTestModelTos = _testCatalog?.Fetch(oldResourceId); if (serviceTestModelTos != null && serviceTestModelTos.Count > 0) { foreach (var serviceTestModelTo in serviceTestModelTos) { serviceTestModelTo.ResourceId = newResourceId; } TestCatalog.SaveTests(newResourceId, serviceTestModelTos); } }
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); }
private void SetWarewolfTestResults(ITestCatalog testCatalog, IWarewolfResource coverageResource) { var workflowTestResults = new WorkflowTestResults(testCatalog, coverageResource); if (!string.IsNullOrEmpty(_reportName) && _reportName != "*") { var report = testCatalog.Fetch(coverageResource.ResourceID); var tempcoverageReport = report?.Find(oo => oo.TestName?.ToUpper() == _reportName.ToUpper()); if (tempcoverageReport != null) { AllTestResults.Add(tempcoverageReport); } } else { workflowTestResults.Results ?.ForEach(o => AllTestResults.Add(o)); } }
static List <IServiceTestModelTO> RunAllTestsForWorkflow(IDSFDataObject dataObject, string serviceName, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCatalog testCatalog) { var allTests = testCatalog.Fetch(dataObject.ResourceID) ?? new List <IServiceTestModelTO>(); var taskList = new List <Task>(); var testResults = new List <IServiceTestModelTO>(); foreach (var test in allTests.Where(to => to.Enabled)) { dataObject.ResourceID = test.ResourceId; var dataObjectClone = dataObject.Clone(); dataObjectClone.Environment = new ExecutionEnvironment(); dataObjectClone.TestName = test.TestName; dataObjectClone.ServiceName = serviceName; var lastTask = ServiceTestExecutor.GetTaskForTestExecution(serviceName, userPrinciple, workspaceGuid, serializer, testResults, dataObjectClone); taskList.Add(lastTask); } Task.WaitAll(taskList.ToArray()); return(testResults); }
// ReSharper disable once RedundantAssignment public static IEnumerable <JObject> RunSingleTestBatch(this IDSFDataObject dataObject, string serviceName, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCatalog catalog, ref DataListFormat formatter) { var allTests = catalog.Fetch(dataObject.ResourceID) ?? new List <IServiceTestModelTO>(); var taskList = new List <Task>(); var testResults = new List <IServiceTestModelTO>(); foreach (var test in allTests.Where(to => to.Enabled)) { var dataObjectClone = dataObject.Clone(); dataObjectClone.Environment = new ExecutionEnvironment(); dataObjectClone.TestName = test.TestName; var lastTask = ServiceTestExecutor.GetTaskForTestExecution(serviceName, userPrinciple, workspaceGuid, serializer, testResults, dataObjectClone); taskList.Add(lastTask); } Task.WaitAll(taskList.ToArray()); formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); return((from testRunResult in testResults where testRunResult != null select testRunResult.BuildTestResultForWebRequest() ).ToList()); }
private void Initialize() { var tests = _testCatalog.Fetch(Resource.ResourceID); tests?.ForEach(o => Add(o)); }
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); }