2017-05-17 5 views
0

Angenommen, ich habe ein paar Module mit Testfällen von unittest.TestCase abgeleitet. Alle diese Module befinden sich in einem Paket test:Wie alle Tests mit einem Shellbefehl ausgeführt werden?

test/ 
    test_case1.py 
    test_case2.py 
    test_case3.py 

Ich mag würde alle Tests in allen Modulen in test mit ein Shell-Befehl auszuführen. Um es zu tun, habe ich hinzugefügt ein neues Modul test_all.py, die eine TestSuite mit allen Testfällen erzeugt und main:

def make_suite(): 
    ... # add test cases explicitly one by one 

if __name__ == "__main__": 
    suite = make_suite() 
    unittest.TextTestRunner().run(suite) 

Jetzt frage ich mich, ob es einen Weg gibt alle die Testfälle zu laufen in test ohne ein 2,7 TestSuite

+0

lehnen Sie ein Tool wie 'nosetests' zu verwenden? – chepner

+0

Ja, wenn es nicht unbedingt notwendig ist. – Michael

Antwort

4

Ab Python zu machen, können Sie etwas tun:

python -m unittest discover <test_directory> 

natürlich alle Test Verzeichnisse müssen eine __init__.py Datei enthalten.

Sie können auch ein Tool wie nose verwenden, um Ihre Tests auszuführen. auch

Siehe:

+0

Vielen Dank. Die 'discover' Lösung ist wahrscheinlich, was ich brauche. – Michael

+0

Großartig. Wenn es funktioniert, hoffe ich, dass Sie die Antwort –

1
for f in ./test/test_case*.py; do python $f; done 
+0

nicht genau, was ich brauche aber trotzdem danke akzeptieren. – Michael

Verwandte Themen