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); }
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); }
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(""); }
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); }
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(); }
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(); } }
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); }
/// <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 }); }
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); }
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); } }
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); }
public static String GetDeploymentName(Testsystem testsystem) { return(testsystem.Url); }
public static bool IsDeploymentRunning(Testsystem testsystem) { return(IsDeploymentRunning(GetDeploymentName(testsystem))); }