import sys import py from py.__.test.session import Session from py.__.test.reporter import AbstractReporter class MyReporter(AbstractReporter): def __init__(self, *args, **kwds): super(MyReporter, self).__init__(*args, **kwds) # XXXXXXXXXXXXXXx SUPER HACK mostly broken only works if you run # py.test just how I run py.test, sorry. -exarkun self.name = filter(None, sys.argv[-1].split('/')[:-1]) def report_unknown(self, event): pass def report_TestStarted(self, event): pass def report_TestFinished(self, event): pass def report_ReceivedItemOutcome(self, event): if event.outcome.passed: result = 'passed' elif event.outcome.skipped: result = 'skipped' else: result = 'failed' self.out.line('%s %s' % ('.'.join(self.name), result)) def report_ItemStart(self, event): self.name.append(event.item.name) def report_ItemFinish(self, event): self.name.pop() class MySession(Session): reporterclass = MyReporter