def run(self):
        self.logger.debug('Testing thread started')
        try:
            self.check_timeout()
            self.update_status()
            self.update_panel()

            self.logger.debug(' |- spawning subprocess with command "%s"', self.command)
            self.logger.debug(' ||- working directory is "%s"', self.working_directory)
            self.process = subprocess.Popen(
                self.command,
                shell=True,
                cwd=self.working_directory,
                universal_newlines=True,
                bufsize=1,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE
            )

            tapParser = parsers.TapParser(self.process.stdout)
            tapParser.signal['line'].add(self.stdout_line)
            tapParser.signal['tests_planned'].add(self.tests_planned)
            tapParser.signal['test_case'].add(self.test_case)
            tapParser.signal['tests_completed'].add(self.tests_completed)
            tapParser.parse()

            lineParser = parsers.LineParser(self.process.stderr)
            lineParser.signal['line'].add(self.stderr_line)
            lineParser.parse()

            self.logger.debug(' |- subprocess finished!')


        except __HOLE__:
            print('Unexpected error running tests:')
            self.logger.exception('Unexpected error running tests')
        except Exception:
            print('Unexpected error running tests:')
            self.logger.exception('Unexpected error running tests')

        self.logger.debug('Testing thread finished')
dataset/ETHPy150Open accerqueira/sublime-test-runner/TestRunner.py/TestRunnerWorker.run