快速摘要:越來越在Python這需要在CMD行參數工作單元測試和使用-b標誌運行測試蟒蛇單元測試與傳遞的參數-b
我在下面的代碼文件名爲:filetool.py
def get_passedargdict():
'''need a place to setup args'''
parser = argparse.ArgumentParser(description="pass me some data")
parser.add_argument("-skipmd5", "--skipmd5", help="skip the md5 check", required=False)
parser.add_argument("-keepinput", "--keepinput", help="copy instead of moving the input file", required=False)
parser.add_argument("-keepconfig", "--keepconfig", help="copy instead of moving the config file", required=False)
passedargs = parser.parse_args()
passedargdict = {}
if passedargs.skipmd5 == "y":
passedargdict["skipmd5"] = True
else:
passedargdict["skipmd5"] = False
if passedargs.keepinput == "y":
passedargdict["keepinput"] = True
else:
passedargdict["keepinput"] = False
if passedargs.keepconfig == "y":
passedargdict["keepconfig"] = True
else:
passedargdict["keepconfig"] = False
return passedargdict
非常直截了當,工作正常。我接收命令行內容並將其填入字典中。現在,我想補充一個非常基本的單元測試(我有很多已經被工作)使用:在一個名爲test_filetools.py
import unittest
和這個作品:
def test_get_passedargdict(self):
passedargdict = get_passedargdict()
self.assertFalse(passedargdict["keepinput"])
self.assertFalse(passedargdict["keepconfig"])
self.assertFalse(passedargdict["skipmd5"])
而且我可以運行:
test_filetools.py
它很好用。我熱愛生活。但是,我在這裏有很多的單元測試的,我不希望所有的屏幕,我只是想在小點的垃圾郵件,所以我嘗試:
test_filetools.py -b
我也得到了失敗:
Stderr:
usage: test_filetools.py [-h] [-skipmd5 SKIPMD5] [-keepinput KEEPINPUT]
[-keepconfig KEEPCONFIG]
test_filetools.py: error: unrecognized arguments: -b
所以它看起來像我的get_passedargdict()試圖拉入-b。 如果我把這個單元測試出來,它全部運行良好,用-b。
任何想法,我可以有這個單元測試,需要參數,並能夠同時使用-b選項,而不會導致此失敗?謝謝!