[英]python, unittest, test a script with command line args
我編寫了一個python腳本,它接受命令行參數並播放一輪Tic Tac Toe。
運行它看起來像這樣......
運行ttt o#xo ## x ## x 0 1
如果移動是合法的,那么它將打印新的電路板布局以及是否有人贏得了比賽
我必須使用unittest為它編寫測試。 我不知道如何使用各種命令行參數測試整個腳本,我看到的所有示例似乎只是測試腳本中的各個函數。 該腳本還使用argparse
來解析參數
謝謝!
重構你的程序,使其主要動作(減去argparsing)發生在“main”函數中:
def main(args):
...
if __name__ == '__main__':
args = parse_args()
main(args)
然后,您可以編寫main
和parse_args
行為的測試。
PS。 可以使用subprocess
進程模塊將程序作為外部進程調用,然后解析輸出,但我認為這將是更加丑陋和不必要的。
PPS。 作為以這種方式編寫程序的額外好處,您將能夠將程序作為模塊導入,並在其他腳本中調用其主函數。 例如,如果您有一天想為它構建GUI,那么這可能很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.