示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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));
            }
        }
示例#6
0
        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);
        }
示例#7
0
        // 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));
        }
示例#9
0
        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);
        }