private ITestsSplitter GetTestsSplitter(TestCase[] testCasesToRun) { var serializer = new TestDurationSerializer(); IDictionary <TestCase, int> durations = serializer.ReadTestDurations(testCasesToRun); foreach (KeyValuePair <TestCase, int> duration in durations) { if (!_schedulingAnalyzer.AddExpectedDuration(duration.Key, duration.Value)) { _logger.DebugWarning("TestCase already in analyzer: " + duration.Key.FullyQualifiedName); } } ITestsSplitter splitter; if (durations.Count < testCasesToRun.Length) { splitter = new NumberBasedTestsSplitter(testCasesToRun, _settings); _logger.DebugInfo("Using splitter based on number of tests"); } else { splitter = new DurationBasedTestsSplitter(durations, _settings); _logger.DebugInfo("Using splitter based on test durations"); } return(splitter); }
private ITestsSplitter GetTestsSplitter(TestCase[] testCasesToRun) { var serializer = new TestDurationSerializer(); IDictionary <TestCase, int> durations = serializer.ReadTestDurations(testCasesToRun); ITestsSplitter splitter; if (durations.Count < testCasesToRun.Length) { splitter = new NumberBasedTestsSplitter(testCasesToRun, TestEnvironment); TestEnvironment.DebugInfo("Using splitter based on number of tests"); } else { splitter = new DurationBasedTestsSplitter(durations, TestEnvironment); TestEnvironment.DebugInfo("Using splitter based on test durations"); } return(splitter); }
private ITestsSplitter GetTestsSplitter(TestCase[] testCasesToRun) { IDictionary <TestCase, int> durations = null; try { var serializer = new TestDurationSerializer(); durations = serializer.ReadTestDurations(testCasesToRun); foreach (KeyValuePair <TestCase, int> duration in durations) { if (!_schedulingAnalyzer.AddExpectedDuration(duration.Key, duration.Value)) { _logger.DebugWarning(String.Format(Resources.TestCaseInAnalyzer, duration.Key.FullyQualifiedName)); } } } catch (InvalidTestDurationsException e) { _logger.LogWarning(string.Format(Resources.ReadTestDurationError, e.Message)); } ITestsSplitter splitter; if (durations == null || durations.Count < testCasesToRun.Length) { splitter = new NumberBasedTestsSplitter(testCasesToRun, _settings); _logger.DebugInfo(Resources.UsingSplitterOnNumber); } else { splitter = new DurationBasedTestsSplitter(durations, _settings); _logger.DebugInfo(Resources.UsingSplitterOnDuration); } return(splitter); }