python,unittest,使用命令行参数测试脚本



我写了一个python脚本,它接受命令行参数并播放一轮井字游戏。
运行它看起来像这样...

运行 ttt o#xo##x## x 0 1

如果此举是合法的,那么它会打印新的棋盘布局以及是否有人赢得比赛

我必须使用单元测试为它编写测试。我不知道如何使用各种命令行参数测试整个脚本,我看到的所有示例似乎都只是测试脚本中的单个函数。此外,脚本使用 argparse 来解析参数

谢谢!

重构程序,使其主操作(减去参数)发生在"main"函数中:

def main(args):
    ...
if __name__ == '__main__':
    args = parse_args()
    main(args)

然后,您可以为mainparse_args的行为编写测试。

附言。可以使用 subprocess 模块将程序作为外部进程调用,然后解析输出,但我认为这会更丑陋且不必要。

.PPS。作为以这种方式编写程序的另一个好处,您将能够将程序作为模块导入,并在其他脚本中调用其 main 函数。例如,如果您有一天想为它构建一个 GUI,这可能会很有用。

最新更新