X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=emuvim%2Ftest%2Frunner.py;fp=emuvim%2Ftest%2Frunner.py;h=93b08229f00fd01b2d5f24c8b4109c1a37be9a7b;hb=94f53ae31a1f9f9689cbce425289b72509649046;hp=0000000000000000000000000000000000000000;hpb=5aa8cf2ec46680382ac18aefcc49d3f45edaff37;p=osm%2Fvim-emu.git diff --git a/emuvim/test/runner.py b/emuvim/test/runner.py new file mode 100644 index 0000000..93b0822 --- /dev/null +++ b/emuvim/test/runner.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +""" +Run all tests + -v : verbose output + -e : emulator test only (no API tests) + -a : API tests only +""" + +from unittest import defaultTestLoader, TextTestRunner, TestSuite +import os +import sys +from mininet.util import ensureRoot +from mininet.clean import cleanup +from mininet.log import setLogLevel + + +def runTests( testDir, verbosity=1, emuonly=False, apionly=False ): + "discover and run all tests in testDir" + # ensure root and cleanup before starting tests + ensureRoot() + cleanup() + # discover all tests in testDir + testSuite = defaultTestLoader.discover( testDir ) + if emuonly: + testSuiteFiltered = [s for s in testSuite if "Emulator" in str(s)] + testSuite = TestSuite() + testSuite.addTests(testSuiteFiltered) + if apionly: + testSuiteFiltered = [s for s in testSuite if "Api" in str(s)] + testSuite = TestSuite() + testSuite.addTests(testSuiteFiltered) + + # run tests + TextTestRunner( verbosity=verbosity ).run( testSuite ) + + +def main(thisdir): + setLogLevel( 'warning' ) + # get the directory containing example tests + vlevel = 2 if '-v' in sys.argv else 1 + emuonly = ('-e' in sys.argv) + apionly = ('-a' in sys.argv) + runTests( + testDir=thisdir, verbosity=vlevel, emuonly=emuonly, apionly=apionly) + + +if __name__ == '__main__': + thisdir = os.path.dirname( os.path.realpath( __file__ ) ) + main(thisdir)