def _runTest(self, method, printTestName=False, numberOfAssertionFailed=0): exceptionRaised = False if printTestName: print '\t' + Colors.Cyan(method.__name__) try: if self.args.debug: raw_input( '\tenv is up, attach to any process with gdb and press any button to continue.' ) method() except unittest.SkipTest: print '\t' + Colors.Green('Skipping test') except Exception as err: msg = 'Unhandled exception: %s' % err print '\t' + Colors.Bred(msg) traceback.print_exc(file=sys.stdout) exceptionRaised = True isTestFaild = self.currEnv is None or self.currEnv.getNumberOfFailedAssertion( ) > numberOfAssertionFailed or exceptionRaised if isTestFaild: print '\t' + Colors.Bred('Test Failed') self.testsFailed.add(self.currEnv) else: print '\t' + Colors.Green('Test Passed') if self.args.stop_on_failure and isTestFaild: if self.args.interactive_debugger: while self.currEnv.isUp(): time.sleep(1) raw_input('press any button to move to the next test') return self.currEnv.getNumberOfFailedAssertion()
def __init__( self, testName=None, module=None, moduleArgs=None, env=None, useSlaves=None, shardsCount=None, useAof=None, ): self.testName = testName if testName else '%s.%s' % ( inspect.getmodule(inspect.currentframe().f_back).__name__, inspect.currentframe().f_back.f_code.co_name) self.testNamePrintable = self.testName self.testName = self.testName.replace(' ', '_') print Colors.Cyan(self.testNamePrintable + ':') self.module = module if module else Env.defaultModule self.moduleArgs = moduleArgs if moduleArgs else Env.defaultModuleArgs self.env = env if env else Env.defaultEnv self.useSlaves = useSlaves if useSlaves else Env.defaultUseSlaves self.shardsCount = shardsCount if shardsCount else Env.defaultShardsCount self.useAof = useAof if useAof else Env.defaultUseAof self.verbose = Env.defaultVerbose self.logDir = Env.defaultLogDir self.assertionFailedSummery = [] if Env.RTestInstance.currEnv and self.compareEnvs( Env.RTestInstance.currEnv): self.envRunner = Env.RTestInstance.currEnv.envRunner else: if Env.RTestInstance.currEnv: Env.RTestInstance.currEnv.stop() self.envRunner = self.getEnvByName() try: os.makedirs(self.logDir) except Exception: pass self.start() if self.verbose >= 2: print Colors.Blue('\tenv data:') self.envRunner.printEnvData('\t\t') Env.RTestInstance.currEnv = self