2012-06-24 13 views

Respuesta

11

Hay muchas opciones en PyDev dependiendo de lo que desee:

  1. Haga clic derecho en una carpeta y seleccione 'Ejecutar como> Python unidad de prueba' (se ejecutará todos los módulos por debajo de la dir como unidad- pruebas).

  2. Haga clic derecho en múltiples módulos de python y elija 'ejecutar como> prueba de unidad Python' (cargará las pruebas para todos esos módulos y los ejecutará).

  3. Cree un módulo que importe todas las pruebas con un nombre diferente y seleccione 'ejecutar como> prueba de unidad Python' para ese módulo.

es decir .:

from test_mod1 import Test as Test1 
from test_mod2 import Test as Test2 
+0

La sugerencia n. ° 3 es exactamente lo que requiero, gracias. – Graeme

+2

Solo para observar, si se vuelve grande, es posible que desee generar automáticamente eso con algo como cog (http://nedbatchelder.com/code/cog/) –

0
import sys 
import unittest 
# add here some import paths 
sys.path.append(r'..\..') 


if True: #__name__ == '__main__': 
    try: 
     __file__ 
    except NameError: 
     path = '.' 
    else: 
     path = os.path.split(__file__)[0] 
    caseset = dict() 
    def addSuite(suite): 
     for case in suite: 
      if isinstance(case, unittest.TestSuite): 
       addSuite(case) 
       continue 
      key = case.id() 
      if key in caseset: 
##    print 'in:', type(case).__name__ 
       pass 
      else: 
##    print 'new:', type(case).__name__ 
       caseset[key] = case 

    for filename in os.listdir(path): # could also be os.walk 
     if filename.startswith('test_'): 
      filepath = os.path.join(path, filename) 
      modname, ext = os.path.splitext(filename) 
      if os.path.isfile(filepath) and ext.lower() in ('py', 'pyw'): 
       mod = __import__(modname) 
      else: 
       try: 
        mod = __import__(modname) 
       except ImportError: 
        ty, er, tb = sys.exc_info() 
        if tb.tb_next: 
         traceback.print_exception(ty, er, tb) 
        continue 

      cases = unittest.defaultTestLoader.loadTestsFromModule(mod) 
      addSuite(cases) 
    l = caseset.values() 
    suite = unittest.TestSuite(l) 
    ##if __name__ == '__main__': 
     ##unittest.TextTestRunner(verbosity=1).run(suite) # run all tests 

este archivo importa todos los módulos que comienzan con 'test_' en el mismo directorio y todos ellos se suma a la variable suite.

suite lo debe ejecutar pydev pero no puedo probarlo, no tengo pydev.

+0

en realidad no se refieren específicamente a la gestión de PyDev. – Graeme

Cuestiones relacionadas