Ich habe ein Modul, das Unittest importiert und einige Testfälle hat. Ich möchte akzeptieren einige Befehlszeilenoptionen (zum Beispiel unten, der Name einer Datendatei), aber wenn ich versuche, die Option zu übergeben, bekomme ich die Nachricht "Option -i nicht erkannt". Ist es möglich, unit test + Optionen für die App zur Verfügung zu stellen (Hinweis: Ich verwende OptParse, um die Optionen zu behandeln)? Vielen Dank.Python, unittest: Gibt es eine Möglichkeit, Befehlszeilenoptionen an die App zu übergeben
$ python test_app_data.py -i data_1.txt
option -i not recognized
=====================
Follow-up: Das ist eine Implementierung der vorgeschlagenen Lösung:
import cfg_master #has the optparse option-handling code
...
if __name__ == '__main__':
#add you app's options here...
options_tpl = ('-i', '--in_dir', '-o', '--out_dir')
del_lst = []
for i,option in enumerate(sys.argv):
if option in options_tpl:
del_lst.append(i)
del_lst.append(i+1)
del_lst.reverse()
for i in del_lst:
del sys.argv[i]
unittest.main()
Im Allgemeinen ja. In diesem Fall scheint die Antwort sehr von Details zu abhängen, die Sie nicht gegeben haben. –
@jd. Ihr "Follow-up" sollte als Antwort gepostet werden - Ihre Frage sollte nur die ... na ja ... Frage enthalten. – user1251007