public void SplitTestcases_MoreThreadsThanTests_TestsAreDistributedEvenly() { IEnumerable<Model.TestCase> testCasesWithCommonSuite = TestDataCreator.CreateDummyTestCases("FooSuite.BarTest", "FooSuite.BazTest"); MockOptions.Setup(o => o.MaxNrOfThreads).Returns(8); ITestsSplitter splitter = new NumberBasedTestsSplitter(testCasesWithCommonSuite, TestEnvironment); List<List<Model.TestCase>> result = splitter.SplitTestcases(); result.Count.Should().Be(2); result[0].Count.Should().Be(1); result[1].Count.Should().Be(1); }
public void SplitTestcases_SameNumberOfTestsAsThreads_TestsAreDistributedEvenly() { IEnumerable <Model.TestCase> testCasesWithCommonSuite = CreateDummyTestCases("FooSuite.BarTest", "FooSuite.BazTest"); MockOptions.Setup(o => o.MaxNrOfThreads).Returns(2); ITestsSplitter splitter = new NumberBasedTestsSplitter(testCasesWithCommonSuite, TestEnvironment); List <List <Model.TestCase> > result = splitter.SplitTestcases(); Assert.AreEqual(2, result.Count); Assert.AreEqual(1, result[0].Count); Assert.AreEqual(1, result[1].Count); }
public void SplitTestcases_MoreThreadsThanTests_TestsAreDistributedEvenly() { IEnumerable <Model.TestCase> testCasesWithCommonSuite = TestDataCreator.CreateDummyTestCases("FooSuite.BarTest", "FooSuite.BazTest"); MockOptions.Setup(o => o.MaxNrOfThreads).Returns(8); ITestsSplitter splitter = new NumberBasedTestsSplitter(testCasesWithCommonSuite, TestEnvironment.Options); List <List <Model.TestCase> > result = splitter.SplitTestcases(); result.Should().HaveCount(2); result[0].Should().ContainSingle(); result[1].Should().ContainSingle(); }
public void SplitTestcases_ALotMoreTestsThanThreads_TestsAreDistributedEvenly() { List<Model.TestCase> testcases = new List<Model.TestCase>(); for (int i = 0; i < 5002; i++) { testcases.Add(TestDataCreator.ToTestCase("TestSuite.Test" + i)); } MockOptions.Setup(o => o.MaxNrOfThreads).Returns(8); ITestsSplitter splitter = new NumberBasedTestsSplitter(testcases, TestEnvironment); List<List<Model.TestCase>> result = splitter.SplitTestcases(); result.Count.Should().Be(8); result[0].Count.Should().Be(626); result[1].Count.Should().Be(626); result[2].Count.Should().Be(625); result[3].Count.Should().Be(625); result[4].Count.Should().Be(625); result[5].Count.Should().Be(625); result[6].Count.Should().Be(625); result[7].Count.Should().Be(625); }
public void SplitTestcases_ALotMoreTestsThanThreads_TestsAreDistributedEvenly() { List <Model.TestCase> testcases = new List <Model.TestCase>(); for (int i = 0; i < 5002; i++) { testcases.Add(ToTestCase("TestSuite.Test" + i)); } MockOptions.Setup(o => o.MaxNrOfThreads).Returns(8); ITestsSplitter splitter = new NumberBasedTestsSplitter(testcases, TestEnvironment); List <List <Model.TestCase> > result = splitter.SplitTestcases(); Assert.AreEqual(8, result.Count); Assert.AreEqual(626, result[0].Count); Assert.AreEqual(626, result[1].Count); Assert.AreEqual(625, result[2].Count); Assert.AreEqual(625, result[3].Count); Assert.AreEqual(625, result[4].Count); Assert.AreEqual(625, result[5].Count); Assert.AreEqual(625, result[6].Count); Assert.AreEqual(625, result[7].Count); }
public void SplitTestcases_ALotMoreTestsThanThreads_TestsAreDistributedEvenly() { List <Model.TestCase> testcases = new List <Model.TestCase>(); for (int i = 0; i < 5002; i++) { testcases.Add(TestDataCreator.ToTestCase("TestSuite.Test" + i)); } MockOptions.Setup(o => o.MaxNrOfThreads).Returns(8); ITestsSplitter splitter = new NumberBasedTestsSplitter(testcases, TestEnvironment.Options); List <List <Model.TestCase> > result = splitter.SplitTestcases(); result.Should().HaveCount(8); result[0].Should().HaveCount(626); result[1].Should().HaveCount(626); result[2].Should().HaveCount(625); result[3].Should().HaveCount(625); result[4].Should().HaveCount(625); result[5].Should().HaveCount(625); result[6].Should().HaveCount(625); result[7].Should().HaveCount(625); }
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; }