'Execute the parse expression on a series of test strings, showing each
test, the parsed results or where the parse failed. Quick and easy way to
run a parse expression against a list of sample strings.
Parameters:
- tests - a list of separate test strings, or a multiline string of test strings
- parseAll - (default=False) - flag to pass to C{L{parseString}} when running tests'

def runTests(self, tests, parseAll=False):

    if isinstance(tests, basestring):
        tests = map(str.strip, tests.splitlines())
    for t in tests:
        out = [t]
        try:
            out.append(self.parseString(t, parseAll=parseAll).dump())
        except ParseException as pe:
            if ('\n' in t):
                out.append(line(pe.loc, t))
                out.append((('    ' * (col(pe.loc, t) - 1)) + '^'))
            else:
                out.append((('    ' * pe.loc) + '^'))
            out.append(str(pe))
        out.append('')
        print '\n'.join(out)
