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);
        }
Пример #2
0
        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);
        }
Пример #5
0
        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;
        }