예제 #1
0
 public JenkinsStatsPollingUpdater
 (
     ILogger logger, ITimeService timeService,
     IGherkinStatsRepository statsRepository,
     IJenkinsStatsPluginConfiguration configuration
 )
     : base(timeService, configuration)
 {
     this.logger              = logger;
     this.statsRepository     = statsRepository;
     this.pluginConfiguration = configuration;
 }
예제 #2
0
        public static IEnumerable <TestCase> GetTestResults(IJenkinsStatsPluginConfiguration config, DateTime?since)
        {
            var password    = CryptoService.Decrypt(config.Password);
            var auth        = string.IsNullOrEmpty(config.Username) ? null : new NetworkCredential(config.Username, password);
            var projectRoot = new Uri(config.JenkinsRoot.TrimEnd('/') + "/job/" + config.ProjectName.Trim('/') + "/");

            return(GetObject <BuildList>(projectRoot, "api/json", auth).builds.OrderByDescending(b => b.number)
                   .Select(b => GetObject <Build>(b.url, "api/json", auth)).TakeWhile(b => since == null || b.buildTime > since)
                   .Select(b => new { Build = b, TestReport = GetObject <TestReport>(b.url, "testReport/api/json?depth=2", auth) })
                   .SelectMany(e => e.TestReport.suites.SelectMany(s => s.cases).Update(t => t.executed = e.Build.buildTime))
                   .Update(t => t.classOnly = t.className.Substring(t.className.LastIndexOf('.') + 1))
                   .OrderBy(t => t.executed).ThenBy(t => t.className).ThenBy(t => t.name).ToArray());
        }
예제 #3
0
 public JenkinsTestStatsProvider(ILogger logger, ITimeService timeService, IGherkinStatsRepository statsRepository, IJenkinsStatsPluginConfiguration configuration)
 {
     this.statsRepository = statsRepository;
     statsRepository.StatisticsUpdated            += OnStatisticsRepositoryUpdated;
     statsRepository.RequirementStatisticsChanged += OnRequirementStatisticsChanged;
     this.statsUpdater = new JenkinsStatsPollingUpdater(logger, timeService, statsRepository, configuration);
     this.statsUpdater.Start();
 }