2011-11-02 28 views
5

Ho provato:Come genero un test suite in 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 

ma ottengo 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' 

risposta

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

di errore: Traceback (ultima chiamata ultima): File "runtes" ts.py ", riga 64, in? risultati = main() File "runtests.py", linea 58, nelle principali risultati = unittest.TextTestRunner(). Conduzione (buildTestSuite()) File "runtests.py", linea 52, nel modulo buildTestSuite = __import __ (modname, fromlist = '1') TypeError: __import __() non accetta argomenti parola chiave – kamal

+0

'__import__' accetta argomenti di parole chiave in Python2.6 + (almeno). Quale versione di Python stai usando? – unutbu

+0

sto usando Python 2.4.3 – kamal

0

provare qualcosa di simile:

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

ottengo l'errore: Traceback (ultima chiamata ultima): File "runtests.py", riga 76, in? results = main() File "runtests.py", riga 70, in main results = unittest.TextTestRunner(). Run (buildTestSuite()) File "/usr/lib64/python2.4/unittest.py" , riga 696, in esecuzione test (risultato) TypeError: l'oggetto 'NoneType' non è richiamabile – kamal

Problemi correlati