簡體   English   中英

python,unittest,用命令行參數測試腳本

[英]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)

然后,您可以編寫mainparse_args行為的測試。

PS。 可以使用subprocess進程模塊將程序作為外部進程調用,然后解析輸出,但我認為這將是更加丑陋和不必要的。

PPS。 作為以這種方式編寫程序的額外好處,您將能夠將程序作為模塊導入,並在其他腳本中調用其主函數。 例如,如果您有一天想為它構建GUI,那么這可能很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM