예제 #1
0
    def test_if_each_test_should_be_own_suite(self):
        max_time = 5
        tests_runtimes = [
            TestRuntime("test1", 5),
            TestRuntime("test2", 4),
            TestRuntime("test3", 3),
        ]

        suites = under_test.greedy_division(tests_runtimes, max_time)

        self.assertEqual(len(suites), 3)
예제 #2
0
    def test_max_tests_per_suites_is_less_than_number_of_tests(self):
        max_time = 100
        num_tests = 10
        tests_runtimes = [
            TestRuntime(f"tests_{i}", 1) for i in range(num_tests)
        ]

        suites = under_test.greedy_division(tests_runtimes,
                                            max_time,
                                            max_tests_per_suite=2)

        self.assertEqual(len(suites), num_tests // 2)
예제 #3
0
    def test_max_tests_per_suites_is_one(self):
        max_time = 5
        num_tests = 10
        tests_runtimes = [
            TestRuntime(f"tests_{i}", i) for i in range(num_tests)
        ]

        suites = under_test.greedy_division(tests_runtimes,
                                            max_time,
                                            max_tests_per_suite=1)

        self.assertEqual(len(suites), num_tests)
예제 #4
0
    def test_if_test_is_greater_than_max_it_goes_alone(self):
        max_time = 7
        tests_runtimes = [
            TestRuntime("test1", 15),
            TestRuntime("test2", 4),
            TestRuntime("test3", 3),
        ]

        suites = under_test.greedy_division(tests_runtimes, max_time)

        self.assertEqual(len(suites), 2)
        self.assertEqual(len(suites[0]), 1)
        self.assertIn("test1", suites[0])
예제 #5
0
    def test_if_less_total_than_max_only_one_suite_created(self):
        max_time = 20
        tests_runtimes = [
            TestRuntime("test1", 5),
            TestRuntime("test2", 4),
            TestRuntime("test3", 3),
        ]

        suites = under_test.greedy_division(tests_runtimes, max_time)

        self.assertEqual(len(suites), 1)
        for test in tests_runtimes:
            self.assertIn(test.test_name, suites[0])
예제 #6
0
    def test_max_suites_overrides_max_tests_per_suite(self):
        max_time = 100
        num_tests = 10
        max_suites = 2
        tests_runtimes = [
            TestRuntime(f"tests_{i}", 1) for i in range(num_tests)
        ]

        suites = under_test.greedy_division(tests_runtimes,
                                            max_time,
                                            max_suites=max_suites,
                                            max_tests_per_suite=2)

        self.assertEqual(len(suites), max_suites)
예제 #7
0
    def test_max_sub_suites_options(self):
        max_time = 5
        max_suites = 2
        tests_runtimes = [
            TestRuntime("test1", 5),
            TestRuntime("test2", 4),
            TestRuntime("test3", 3),
            TestRuntime("test4", 4),
            TestRuntime("test5", 3),
        ]

        suites = under_test.greedy_division(tests_runtimes,
                                            max_time,
                                            max_suites=max_suites)

        self.assertEqual(len(suites), max_suites)
        total_tests = sum(len(suite) for suite in suites)
        self.assertEqual(total_tests, len(tests_runtimes))