Example #1
0
        void ITestService.TestFailedTestsOfTestcaseOfTestsuite(int testerId, int testsystemId, int testsuiteId, int testcaseId)
        {
            Testsuite testsuite = _testsuiteRepository.GetById(testsuiteId);
            Testcase  testcase  = testsuite.Testcases.Single(t => t.ID == testcaseId);

            IList <Result> errorResults = _resultRepository.GetErrorResultsOfTestsuite(testsystemId, testsuite.Browsers, new List <Testcase> {
                testcase
            },
                                                                                       testsuite.Languages);
            Testsystem testsystem = _testsystemRepository.GetById(testsystemId);
            Tester     tester     = _testerRepository.GetById(testerId);

            TestJob testjob = CreateTestJob("Repeat failed of " + "Testcase " + testcase.Name + "(Testsuite " + testsuite.Name + ")", testsuite, testsystem, tester);

            ITestJobManager testjobManager = new TestJobManager(testjob);

            ICollection <WorkItem> workItems = (from result in errorResults
                                                select new WorkItem(testjobManager)
            {
                Testcase = result.Testcase,
                Browser = result.Browser,
                Language = result.Language,
                Testsystem = testsystem,
                Tester = tester
            }).ToList();

            _testPool.AddTestJob(testjobManager, workItems);
        }
Example #2
0
        IList <ErrorOccurrenceGroup> ITestViewerService.GetHistoryErrorOccurrenceGroups(int testsystemIndex, int testsuiteId, DateTime fromDate, DateTime toDate)
        {
            Testsuite             testsuite = _testsuiteRepository.GetById(testsuiteId);
            IList <HistoryResult> historyErrorResultsOfTestsuite = _historyResultRepository.GetListOfErrorHistoryResults(testsystemIndex,
                                                                                                                         testsuite.Browsers, testsuite.Testcases, testsuite.Languages, fromDate, toDate);

            return(ErrorGrouping.GetHistoryErrorOccurrenceGroups(historyErrorResultsOfTestsuite));
        }
Example #3
0
        IList <ErrorOccurrenceGroup> ITestViewerService.GetCurrentErrorOccurrenceGroups(int testsystemIndex, int testsuiteId)
        {
            Testsuite      testsuite = _testsuiteRepository.GetById(testsuiteId);
            IList <Result> errorResultsOfTestsuite = _resultRepository.GetErrorResultsOfTestsuite(testsystemIndex, testsuite.Browsers,
                                                                                                  testsuite.Testcases, testsuite.Languages);

            return(ErrorGrouping.GetErrorOccurrenceGroups(errorResultsOfTestsuite));
        }
Example #4
0
        IList <TestsystemSummary> ISummaryService.GetLastTestsystemSummaries()
        {
            Testsuite testsuite = _testsuiteRepository.GetByName(RegtestingServerConfiguration.Defaulttestsuite);

            return(_testsystemRepository.GetAll()
                   .Select(objTestsystem => CreateTestsystemSummary(objTestsystem, testsuite, TestsystemSummariesCache.Cache))
                   .OrderByDescending(objSummary => objSummary.LastChangeDate).Where(objSummary => DateTime.Now - objSummary.LastChangeDate < TimeSpan.FromDays(7)).ToList());
        }
Example #5
0
        IList <HistoryResult> ITestViewerService.GetResultsHistory(int testsystemIndex, int testcaseId, int browserId, int languageId, int testsuiteId,
                                                                   int maxResults)
        {
            Testsuite        testsuite = _testsuiteRepository.GetById(testsuiteId);
            IList <Browser>  browsers  = browserId == -1 ? testsuite.Browsers : testsuite.Browsers.Where(t => t.ID == browserId).ToList();
            IList <Language> languages = languageId == -1 ? testsuite.Languages : testsuite.Languages.Where(t => t.ID == languageId).ToList();
            IList <Testcase> testcases = testcaseId == -1 ? testsuite.Testcases : testsuite.Testcases.Where(t => t.ID == testcaseId).ToList();

            return(_historyResultRepository.GetListOfHistoryResults(testsystemIndex, browsers, testcases, languages, maxResults).ToList());
        }
Example #6
0
        public void TestStartTestRunCallsClientAndSetsRunIdOnSuite()
        {
            var inMemoryTestrailClient = new InMemoryTestrailClient();

            var service = new TestrailService(inMemoryTestrailClient);
            var suite   = new Testsuite("SomeSuite", 1);

            service.StartSuite(suite);

            Assert.AreEqual(InMemoryTestrailClient.RunId, suite.CurrentRunId);
        }
Example #7
0
        IList <TestsystemSummary> ISummaryService.GetPinnedTestsystemSummaries()
        {
            Testsuite          testsuite       = _testsuiteRepository.GetByName(RegtestingServerConfiguration.Defaulttestsuite);
            IList <Testsystem> mainTestsystems =
                RegtestingServerConfiguration.PinnedBranches.Select(t => _testsystemRepository.GetByName(t)).ToList();


            return(mainTestsystems
                   .Select(objTestsystem => CreateTestsystemSummary(objTestsystem, testsuite, TestsystemSummariesCache.Cache))
                   .ToList());
        }
Example #8
0
        void ILocalTestService.AddLocalTestTasks(string userName, string testsystemName, string testsystemUrl, List <string> browsers,
                                                 List <string> testcases, List <string> languages)
        {
            Testsystem testsystem = _testsystemRepository.GetByName(testsystemName);
            Tester     tester     = _testerRepository.GetByName(userName);

            testsystem.Url = testsystemUrl;
            _testsystemRepository.Store(testsystem);

            Testsuite testsuite = new Testsuite {
                Description = "", Name = "Local " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), TestsystemFilter = testsystem
            };

            _testsuiteRepository.Store(testsuite);

            int        testsuiteId = testsuite.ID;
            List <int> testcaseIds = testcases.Select(t => _testcaseRepository.GetByType(t).ID).ToList();
            List <int> browserIds  = browsers.Select(t => _browserRepository.GetByName(t).ID).ToList();
            List <int> languageIds = languages.Select(t => _languageRepository.GetByLanguageCode(t).ID).ToList();


            _testsuiteRepository.SetTestcasesForTestsuite(testsuiteId, testcaseIds);
            _testsuiteRepository.SetBrowsersForTestsuite(testsuiteId, browserIds);
            _testsuiteRepository.SetLanguagesForTestsuite(testsuiteId, languageIds);


            TestJob testjob = new TestJob
            {
                Name       = "A set of tests on " + testsystem.Url,
                ResultCode = TestState.Pending,
                Testsuite  = testsuite,
                Testsystem = testsystem,
                Tester     = tester,
                StartedAt  = DateTime.Now,
                JobType    = JobType.Localtesttool
            };

            ITestJobManager testJobManager = new TestJobManager(testjob);

            ICollection <WorkItem> workItems = (from testcase in testsuite.Testcases
                                                from browser in testsuite.Browsers
                                                from language in testsuite.Languages
                                                select new WorkItem(testJobManager)
            {
                Testcase = testcase,
                Browser = browser,
                Language = language,
                Testsystem = testsystem,
                Tester = tester
            }).ToList();

            _testPool.AddTestJob(testJobManager, workItems);
        }
Example #9
0
        public void TestEndRunCallClientAndResetsRunIdToDefault()
        {
            var inMemoryTestrailClient = new InMemoryTestrailClient();

            var service = new TestrailService(inMemoryTestrailClient);
            var suite   = new Testsuite("SomeSuite", 1);

            service.StartSuite(suite);
            service.EndSuite(suite);

            Assert.AreEqual(-1, suite.CurrentRunId);
            Assert.IsTrue(inMemoryTestrailClient.EndSuiteCalled);
        }
Example #10
0
        private static TestJob CreateTestJob(string name, Testsuite testsuite, Testsystem testsystem, Tester tester)
        {
            TestJob testjob = new TestJob
            {
                Name       = name,
                ResultCode = TestState.Pending,
                Testsuite  = testsuite,
                Testsystem = testsystem,
                Tester     = tester,
                StartedAt  = DateTime.Now,
                JobType    = JobType.Testportal
            };

            return(testjob);
        }
Example #11
0
        void ISettingsService.StoreTestsuite(TestsuiteDto testsuite)
        {
            if (testsuite.ID == 0)
            {
                _testsuiteRepository.Store(Mapper.Map <Testsuite>(testsuite));
            }
            else
            {
                Testsuite testsuiteCurrent = _testsuiteRepository.GetById(testsuite.ID);

                testsuiteCurrent.Name        = testsuite.Name;
                testsuiteCurrent.Description = testsuite.Description;

                _testsuiteRepository.Store(testsuiteCurrent);
            }
        }
Example #12
0
        TestcaseDetailsModel ITestViewerService.GetTestcaseDetails(int testsystemIndex, int testsuiteId, int testcaseId)
        {
            Testsuite            testsuite       = _testsuiteRepository.GetById(testsuiteId);
            TestcaseDetailsModel testcaseDetails = new TestcaseDetailsModel();

            IList <Result> errorResultsOfTestsuite = _resultRepository.GetErrorResultsOfTestsuite(testsystemIndex, testsuite.Browsers, testsuite.Testcases.Where(t => t.ID == testcaseId).ToList(),
                                                                                                  testsuite.Languages);

            IList <ErrorOccurrenceGroup> errorOccurenceGroups = ErrorGrouping.GetErrorOccurrenceGroups(errorResultsOfTestsuite);

            if (errorOccurenceGroups.Any())
            {
                testcaseDetails.ErrorOccurrenceGroup = errorOccurenceGroups.First();
            }
            testcaseDetails.Testcase = _testcaseRepository.GetById(testcaseId);
            return(testcaseDetails);
        }
Example #13
0
        int IBuildTaskService.AddRegTestTasks(string testsystemName, string emailReceiver, string testsuiteName, string branch, string commitId, string commitMessage)
        {
            Testsuite  testsuite  = _testsuiteRepository.GetByName(testsuiteName);
            Testsystem testsystem = _testsystemRepository.GetByName(testsystemName);
            Tester     tester     = _testerRepository.GetByName(emailReceiver);
            string     testjobname;

            if (!String.IsNullOrEmpty(commitId) && !String.IsNullOrEmpty(branch))
            {
                testjobname = "Commit " + commitId + " on " + ParseBranchName(branch);
            }
            else
            {
                testjobname = "Testsuite " + testsuiteName;
            }

            TestJob testjob = new TestJob
            {
                Name        = testjobname,
                Description = commitMessage,
                ResultCode  = TestState.Pending,
                Testsuite   = testsuite,
                Testsystem  = testsystem,
                Tester      = tester,
                StartedAt   = DateTime.Now,
                JobType     = JobType.Buildtask
            };

            ITestJobManager testJobManager = new TestJobManager(testjob);

            ICollection <WorkItem> workItems = (from testcase in testsuite.Testcases
                                                from browser in testsuite.Browsers
                                                from language in testsuite.Languages
                                                select new WorkItem(testJobManager)
            {
                Testcase = testcase,
                Browser = browser,
                Language = language,
                Testsystem = testsystem,
                Tester = tester
            }).ToList();

            _testPool.AddTestJob(testJobManager, workItems);
            return(testjob.ID);
        }
Example #14
0
        IList <GroupedResult> ITestViewerService.GetResults(int testsystemIndex, int testsuiteId, DateTime?resultsSince)
        {
            Testsuite      testsuite = _testsuiteRepository.GetById(testsuiteId);
            IList <Result> results   = _resultRepository.GetListOfResults(testsystemIndex, testsuite.Browsers, testsuite.Testcases,
                                                                          testsuite.Languages).ToList();

            List <GroupedResult> groupedResults = new List <GroupedResult>();

            foreach (Testcase testcase in testsuite.Testcases)
            {
                GroupedResult groupedResult = CalculateGroupedResultsForTestcase(testcase.ID, results.Where(result => result.Testcase.ID == testcase.ID).ToList(), resultsSince);
                if (groupedResult != null)
                {
                    groupedResults.Add(groupedResult);
                }
            }

            return(groupedResults);
        }
Example #15
0
        private TestsystemSummary CreateTestsystemSummary(Testsystem testsystem, Testsuite testsuite, TestsystemSummariesCache cache)
        {
            lock (cache.GetLock(testsystem.ID))
            {
                TestsystemSummary cachedResult = cache.Get(testsystem.ID);

                if (cachedResult != null)
                {
                    return(cachedResult);
                }


                IList <Result> results = _resultRepository.GetListOfResults(testsystem.ID, testsuite.Browsers, testsuite.Testcases,
                                                                            testsuite.Languages);

                TestsystemSummary testsystemSummary = new TestsystemSummary
                {
                    TestsuiteName  = testsuite.Name,
                    TestsuiteID    = testsuite.ID,
                    TestsystemName = testsystem.Name,
                    TestsystemID   = testsystem.ID,
                };

                if (results.Count != 0)
                {
                    testsystemSummary.LastChangeDate   = results.Min(t => t.Testtime);
                    testsystemSummary.TestsystemStatus = results.Max(t => t.ResultCode);
                }
                else
                {
                    testsystemSummary.LastChangeDate   = DateTime.MinValue;
                    testsystemSummary.TestsystemStatus = (int)TestState.NotSet;
                }

                cache.Set(testsystem.ID, testsystemSummary);
                return(testsystemSummary);
            }
        }
Example #16
0
        void ILocalTestService.AddTestsuiteTask(string userName, string testsystemName, string testsystemUrl, string testsuiteName)
        {
            Testsuite  testsuite  = _testsuiteRepository.GetByName(testsuiteName);
            Testsystem testsystem = _testsystemRepository.GetByName(testsystemName);

            testsystem.Url = testsystemUrl;
            _testsystemRepository.Store(testsystem);

            Tester tester      = _testerRepository.GetByName(userName);
            string testjobname = "Testsuite " + testsuite.Name + " on " + testsystem.Url;

            TestJob testjob = new TestJob
            {
                Name       = testjobname,
                ResultCode = TestState.Pending,
                Testsuite  = testsuite,
                Testsystem = testsystem,
                Tester     = tester,
                StartedAt  = DateTime.Now,
                JobType    = JobType.Localtesttool
            };

            ITestJobManager testJobManager = new TestJobManager(testjob);

            ICollection <WorkItem> workItems = (from testcase in testsuite.Testcases
                                                from browser in testsuite.Browsers
                                                from language in testsuite.Languages
                                                select new WorkItem(testJobManager)
            {
                Testcase = testcase,
                Browser = browser,
                Language = language,
                Testsystem = testsystem,
                Tester = tester
            }).ToList();

            _testPool.AddTestJob(testJobManager, workItems);
        }
Example #17
0
        void ITestService.TestTestcaseOfTestsuite(int testerId, int testsystemId, int testsuiteId, int testcaseId)
        {
            Testsuite  testsuite  = _testsuiteRepository.GetById(testsuiteId);
            Testsystem testsystem = _testsystemRepository.GetById(testsystemId);
            Tester     tester     = _testerRepository.GetById(testerId);
            Testcase   testcase   = testsuite.Testcases.Single(t => t.ID == testcaseId);

            TestJob         testJob        = CreateTestJob("Testcase " + testcase.Name + "(Testsuite " + testsuite.Name + ")", testsuite, testsystem, tester);
            ITestJobManager testJobManager = new TestJobManager(testJob);

            ICollection <WorkItem> workItems = (from browser in testsuite.Browsers
                                                from language in testsuite.Languages
                                                select new WorkItem(testJobManager)
            {
                Testcase = testcase,
                Browser = browser,
                Language = language,
                Testsystem = testsystem,
                Tester = tester
            }).ToList();

            _testPool.AddTestJob(testJobManager, workItems);
        }
Example #18
0
 /// <summary>
 /// The end suite.
 /// </summary>
 /// <param name="suite">
 /// The suite.
 /// </param>
 public void EndSuite(Testsuite suite)
 {
     this.TestrailClient.EndSuiteRun(suite.CurrentRunId);
     suite.CurrentRunId = Testsuite.DefaultRunId;
 }
Example #19
0
 /// <summary>
 /// The start suite.
 /// </summary>
 /// <param name="suite">
 /// The suite.
 /// </param>
 public void StartSuite(Testsuite suite)
 {
     suite.CurrentRunId = this.TestrailClient.StartSuiteRun(suite.ProjectId, suite.Name);
 }