2016-11-02 2 views
0

ich einige Tests schreibe, die die Python-Unittest-Paket verwenden (Python 2.7) und ich verlassen sich stark auf die xmlrunner.XMLTestRunner der XML-TestausgangArgumente an unittest.TestSuite und mit xmlrunner.XMLTestRunner

Leider dump , Ich finde kein grundlegendes Beispiel, das beschreibt, wie man einige Befehlszeilenoptionen an die Testklasse weitergeben kann, um einige der Tests zu parametrisieren. Hat jemand einen Hinweis darauf, wie ich das erreichen könnte (mit xmlrunner)?

Darüber hinaus ist hier, was ich zu erreichen versuchen: ich meine Tests in einer Reihe von Klassen in der folgenden myunittest.py Datei definieren:

import unittest 
class TestOne(unittest.TestCase): 
    def __init__(self, options=None): 
     unittest.TestCase.__init__(self) 
     self.__options = options 
    def A(self): 
     print self.__options.configXML # try to print the parameter 
     self.assertEqual(1, 1) 

und aus dem Haupt nennen. py, die wie folgt aussieht:

from optparse import OptionParser 
import unittest 
import xmlrunner 
from uitest import * 

def runit(opt): 
    suite = unittest.TestSuite() 
    suite.addTest(TestOne(options=opt)) 
    testrunner = xmlrunner.XMLTestRunner(output='tests', descriptions=True) 
    unittest.main(testRunner=testrunner).run(suite) 

if __name__ == "__main__": 
    parser = argparse.ArgumentParser(add_help=False) 
    parser.add_argument("-c", "--configXML", dest="configXML", help="xml file") 
    options = parser.parse_args() 
    runit(opt=options) 

Vielen dank für Ihre wertvolle Hilfe.

Antwort

0

nach mehreren Stunden versuchte ich es herauszufinden, kam ich zu dieser Lösung, die meinen Tag macht. Ich poste es hier, falls jemand zum selben Thema kommt. Der Hauptnachteil ist, dass es scheint, dass ich alles in der gleichen Python-Datei haben muss. und ich laufe es wie:

python test.py --xmlConfig=configFile.xml --xmlRunner 

mit test.py:

import unittest 
import sys 
from optparse import OptionParser 
import xmlrunner 

class MyTests(unittest.TestCase): 
    def testFirstThing(self): 
     xmlConfig=options.xmlConfig 
     self.assertEqual(xmlConfig,"configFile.xml") 

if __name__ == '__main__': 
    parser = OptionParser() 
    parser.add_option("--xmlRunner", "--xmlRunner", help="perform a unittest and generate XML", dest="xmlRunner", default=False, action='store_true') 
    parser.add_option("--xmlConfig", "--xmlConfig", type="string", help="configuration file", dest="xmlConfig", default="config.xml") 

    options, arguments = parser.parse_args() 
    if options.xmlRunner: 
     del sys.argv[1:] 
     unittest.main(testRunner=xmlrunner.XMLTestRunner(output='./xml')) 
Verwandte Themen