Пример #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);
        }
Пример #2
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);
        }
Пример #3
0
        string IStatusService.GetMessage(int testsystemId)
        {
            Testsystem testsystem = _testsystemRepository.GetById(testsystemId);

            String deployname          = Tfs.TfsBuildQuery.GetDeploymentName(testsystem);
            bool   isDeploymentRunning = Tfs.TfsBuildQuery.IsDeploymentRunning(deployname);

            if (isDeploymentRunning)
            {
                return("<b>" + deployname + " is running</b>. Testing task starts after build is finished.");
            }
            return("");
        }
Пример #4
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);
        }
Пример #5
0
        private void UpdateTestcases(Testsystem testsystem)
        {
            const string testfile = @"LocalTests.dll";

            byte[] data;
            using (WcfClient wcfClient = new WcfClient(_serverAdr))
            {
                data = wcfClient.FetchDll(_nodename, testsystem.Name);
            }

            using (FileStream fileStream = new FileStream(testfile, FileMode.Create, FileAccess.Write))
            {
                fileStream.Write(data, 0, data.Length);
            }
            _testcaseProvider = new TestcaseProvider(testfile);
            _testcaseProvider.CreateAppDomain();
        }
Пример #6
0
        void IBuildTaskService.SendTestcaseFile(string testsystemName, byte[] data)
        {
            object _lock = _testFileLocker.GetLock(testsystemName);

            lock (_lock)
            {
                Testsystem testsystem = _testsystemRepository.GetByName(testsystemName);
                testsystem.LastUpdated = DateTime.Now;
                _testsystemRepository.Store(testsystem);
                string testFile = RegtestingServerConfiguration.Testsfolder + testsystem.Filename;
                Directory.CreateDirectory(Path.GetDirectoryName(testFile));
                using (FileStream fileStream = new FileStream(testFile, FileMode.Create, FileAccess.Write))
                {
                    fileStream.Write(data, 0, data.Length);
                }
                Logger.Log("UPDATE branch: " + testsystemName);
                TestcaseProvider testcaseProvider = new TestcaseProvider(testFile);
                testcaseProvider.CreateAppDomain();
                foreach (string testcaseType in testcaseProvider.Types)
                {
                    ITestable testable = testcaseProvider.GetTestableFromTypeName(testcaseType);
                    if (testable == null)
                    {
                        continue;
                    }

                    Testcase testcase     = _testcaseRepository.GetByType(testcaseType);
                    string   testableName = testable.GetName();
                    if (testcase == null)
                    {
                        Logger.Log("New test: " + testableName);
                        testcase = new Testcase {
                            Name = testableName, Type = testcaseType
                        };
                        _testcaseRepository.Store(testcase);
                    }
                    else if (!testcase.Name.Equals(testableName))
                    {
                        Logger.Log("Renamed test: " + testcase.Name + " to " + testableName);
                        testcase.Name = testableName;
                        _testcaseRepository.Store(testcase);
                    }
                }
                testcaseProvider.Unload();
            }
        }
Пример #7
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);
        }
Пример #8
0
        /// <summary>
        /// Get a single Result
        /// </summary>
        /// <param name="testsystem">the testsystem</param>
        /// <param name="testcase">the testcase</param>
        /// <param name="browser">the browser</param>
        /// <param name="language">the language</param>
        /// <returns>a result</returns>
        Result IResultRepository.Get(Testsystem testsystem, Testcase testcase, Browser browser, Language language)
        {
            Result result = (
                from results in Session.Query <Result>()
                where results.Testsystem.ID == testsystem.ID &&
                results.Testcase.ID == testcase.ID &&
                results.Browser.ID == browser.ID &&
                results.Language.ID == language.ID
                select results).FirstOrDefault();

            return(result ?? new Result
            {
                Browser = browser,
                Language = language,
                Testsystem = testsystem,
                Testcase = testcase,
                ResultCode = TestState.NotSet
            });
        }
Пример #9
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);
        }
Пример #10
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);
            }
        }
Пример #11
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);
        }
Пример #12
0
 public static String GetDeploymentName(Testsystem testsystem)
 {
     return(testsystem.Url);
 }
Пример #13
0
 public static bool IsDeploymentRunning(Testsystem testsystem)
 {
     return(IsDeploymentRunning(GetDeploymentName(testsystem)));
 }