2011-11-02 9 views
5

Traté:¿Cómo puedo crear un conjunto de pruebas en Python unittest

def buildTestSuite(): 
    suite = unittest.TestSuite() 
    for testcase in glob.glob('src/testsuite/test_*.py'): 
     module = os.path.splitext(testcase)[0] 
     print module 
     print type(module) 
     suite.addTest(__import__(module).buildTestSuite()) 
    return suite 

pero consigo EROR:

Traceback (most recent call last): 
    File "runtests.py", line 63, in ? 
    results = main() 
    File "runtests.py", line 57, in main 
    results = unittest.TextTestRunner().run(buildTestSuite()) 
    File "runtests.py", line 53, in buildTestSuite 
    suite.addTest(__import__(module).buildTestSuite()) 
AttributeError: 'module' object has no attribute 'buildTestSuite' 

Respuesta

5
def buildTestSuite(): 
    suite = unittest.TestSuite() 
    for testcase in glob.glob('src/testsuite/test_*.py'): 
     modname = os.path.splitext(testcase)[0] 
     module=__import__(modname,{},{},['1']) 
     suite.addTest(unittest.TestLoader().loadTestsFromModule(module)) 
    return suite 
+0

de error: Traza (última llamada más reciente): Archivo "runtes ts.py ", línea 64, in? resultados = main() Archivo "runtests.py", línea 58, en las principales resultados = unittest.TextTestRunner(). Ejecutar (buildTestSuite()) Archivo "runtests.py", línea 52, en buildTestSuite módulo = __import __ (modname, fromlist = '1') TypeError: __import __() no toma argumentos de palabra clave – kamal

+0

'__import__' acepta argumentos de palabra clave en Python2.6 + (al menos). ¿Qué versión de Python estás usando? – unutbu

+0

estoy usando Python 2.4.3 – kamal

0

intentar algo como:

suite = unittest.TestSuite() 
for t in glob.glob('src/testsuite/test_*.py'): 
    try: 
     # If the module defines a suite() function, call it to get the suite. 
     mod = __import__(t, globals(), locals(), ['suite']) 
     suitefn = getattr(mod, 'suite') 
     suite.addTest(suitefn()) 
    except (ImportError, AttributeError): 
     # else, just load all the test cases from the module. 
     suite.addTest(unittest.defaultTestLoader.loadTestsFromName(t)) 
+1

me sale el error: Traza (última llamada más reciente): Archivo "runtests.py", línea 76, in? results = main() Archivo "runtests.py", línea 70, en el principal results = unittest.TextTestRunner(). Run (buildTestSuite()) Archivo "/usr/lib64/python2.4/unittest.py" , línea 696, en ejecución prueba (resultado) TypeError: el objeto 'NoneType' no se puede llamar – kamal

Cuestiones relacionadas