Esempio n. 1
0
    def run_suite(self,
                  path,
                  display_name,
                  suffix='[!_]*.py',
                  load_from_name=False):
        '''
        Execute a unit test suite
        '''
        loader = TestLoader()
        try:
            if load_from_name:
                tests = loader.loadTestsFromName(display_name)
            else:
                tests = loader.discover(path, suffix, self.testsuite_directory)
        except (AttributeError, ImportError):
            print(
                'Could not locate test \'{0}\'. Exiting.'.format(display_name))
            sys.exit(1)

        header = '{0} Tests'.format(display_name)
        print_header('Starting {0}'.format(header),
                     width=self.options.output_columns)

        if self.options.xml_out:
            runner = XMLTestRunner(stream=sys.stdout,
                                   output=self.xml_output_dir,
                                   verbosity=self.options.verbosity).run(tests)
            self.testsuite_results.append((header, runner))
        else:
            runner = TextTestRunner(
                stream=sys.stdout, verbosity=self.options.verbosity).run(tests)
            self.testsuite_results.append((header, runner))
        return runner.wasSuccessful()