parser = argparse.ArgumentParser(description='Run Tests') parser.add_argument('--verbose', '-v', dest='verbose', type=int, default=1, help='unittest verbosity') known_args, other_args = parser.parse_known_args() test_runner_output = io.StringIO() runner = unittest.TextTestRunner(stream=test_runner_output, verbosity = known_args.verbose) complete_test_suite = unittest.loader.defaultTestLoader.discover('.', pattern='*.py') tg = TestGetter(complete_test_suite) result = runner.run( tg.get_num(num_to_get = 1) ) i = 0 test_suite_with_a_single_test = tg.get_num(num_to_get = 0) while test_suite_with_a_single_test is not None: cov = coverage.coverage() cov.start() result = runner.run( test_suite_with_a_single_test ) cov.stop () cov_data = called_coverage_data(cov) #print (cov_data) if not result.wasSuccessful(): print(test_runner_output.getvalue()) print ("\n----------------\nError\nTest num. %d fails" % i ) sys.exit(-1) i += 1 test_suite_with_a_single_test = tg.get_num(num_to_get = i) print ("\n----------------\nOK\nRan %d tests in single mode" % i ) sys.exit(-1)
def test_called_coverage_data_2_covered_file(self): mc = MockCoverage(REPORT_TWO_FILES) data = called_coverage_data(mc) self.assertEqual(data, { "foo.py": 56, "bar.py":90 })