'@param exe: path to executable to run
@type  exe: str
@param args: arguments to exe
@type  args: [str]
@type  retry: int
@param time_limit: (optional) time limit for test. Defaults to BARE_TIME_LIMIT.
@type  time_limit: float
@param test_name: (optional) override automatically generated test name
@type  test_name: str
@param package_name: (optional) override automatically inferred package name
@type  package_name: str'

def __init__(self, exe, args, retry=0, time_limit=None, test_name=None, text_mode=False, package_name=None):

    super(BareTestCase, self).__init__()
    self.text_mode = text_mode
    if package_name:
        self.package = package_name
    else:
        self.package = rospkg.get_package_name(exe)
    self.exe = os.path.abspath(exe)
    if (test_name is None):
        self.test_name = os.path.basename(exe)
    else:
        self.test_name = test_name
    if self.exe.endswith('.py'):
        self.args = (['python', self.exe] + args)
    else:
        self.args = ([self.exe] + args)
    if text_mode:
        self.args = (self.args + ['--text'])
    self.retry = retry
    self.time_limit = (time_limit or BARE_TIME_LIMIT)
    self.pmon = None
    self.results = junitxml.Result(self.test_name)
