def METHOD_NAME(self, job):
    """ Run a tester command """
    tester = job.getTester()
    # Do not execute app, and do not processResults
    if self.options.dry_run:
        self.setSuccessfulMessage(tester)
        return
    elif self.options.show_last_run:
        job_results = self.options.results_storage[job.getTestDir()][job.getTestName()]
        status, message, caveats = job.previousTesterStatus(self.options, self.options.results_storage)
        tester.setStatus(status, message)
        if caveats:
            tester.addCaveats(caveats)
        job.setPreviousTime(job_results['TIMING'])
        job.setOutput(job_results['OUTPUT'])
        return
    output = ''
    # Anything that throws while running or processing a job should be caught
    # and the job should fail
    try:
        # Launch and wait for the command to finish
        job.METHOD_NAME()
        # Was this job already considered finished? (Timeout, Crash, etc)
        if job.isFinished():
            return
        # Allow derived proccessResults to process the output and set a failing status (if it failed)
        job_output = job.getOutput()
        output = tester.processResults(tester.getMooseDir(), self.options, job_output)
        # If the tester requested to be skipped at the last minute, report that.
        if tester.isSkip():
            output += '\n' + "#"*80 + '\nTester skipped, reason: ' + tester.getStatusMessage() + '\n'
        elif tester.isFail():
            output += '\n' + "#"*80 + '\nTester failed, reason: ' + tester.getStatusMessage() + '\n'
        # If the tester has not yet failed, append additional information to output
        else:
            # Read the output either from the temporary file or redirected files
            if tester.hasRedirectedOutput(self.options):
                redirected_output = util.getOutputFromFiles(tester, self.options)
                output += redirected_output
                # If we asked for redirected output but none was found, we'll call that a failure
                if redirected_output == '':
                    tester.setStatus(tester.fail, 'FILE TIMEOUT')
                    output += '\n' + "#"*80 + '\nTester failed, reason: ' + tester.getStatusMessage() + '\n'
            self.setSuccessfulMessage(tester)
    except Exception as e:
        output += 'Python exception encountered:\n\n' + traceback.format_exc()
        tester.setStatus(StatusSystem().error, 'TESTER EXCEPTION')
    if job.getOutputFile():
        job.addMetaData(DIRTY_FILES=[job.getOutputFile()])
    # Set testers output with modifications made above so it prints the way we want it
    job.setOutput(output)