我已经写了一个python脚本,需要命令行参数和打一轮井字的脚本。
运行它看起来像这样...蟒蛇,单元测试,测试用命令行参数
运行TTTØ#XO ## X ## X 0 1
如果此举是合法的,然后它打印新的电路板布局,是否有人赢了游戏
我必须写测试中,它使用单元测试的。我不知道如何用各种命令行参数测试整个脚本,我所见过的所有例子似乎只是测试脚本中的各个函数。 同样的脚本使用解析参数
谢谢!
我已经写了一个python脚本,需要命令行参数和打一轮井字的脚本。
运行它看起来像这样...蟒蛇,单元测试,测试用命令行参数
运行TTTØ#XO ## X ## X 0 1
如果此举是合法的,然后它打印新的电路板布局,是否有人赢了游戏
我必须写测试中,它使用单元测试的。我不知道如何用各种命令行参数测试整个脚本,我所见过的所有例子似乎只是测试脚本中的各个函数。 同样的脚本使用解析参数
谢谢!
重构你的程序,它的主要作用(减去argparsing)发生在“主”功能:
def main(args):
...
if __name__ == '__main__':
args = parse_args()
main(args)
然后你就可以编写测试为main
和parse_args
行为。
PS。它可以使用subprocess
模块调用程序作为外部进程,然后解析输出,但我认为这将是丑陋的和不必要的。
PPS。作为以这种方式编写程序的附加好处,您将能够将程序作为模块导入,并在其他脚本中调用其主要功能。例如,如果您有一天想为其构建GUI,那可能会很有用。
如果您的脚本只有一个命令行终结点(OP就是这种情况),这将起作用。如果你有多个端点,你必须使用不同的策略。 –
[在Python中编写单元测试:如何启动?](http://stackoverflow.com/questions/3371255/writing-unit-tests-in-python-how-do-i-start) –
@Pedro ,是的,我一直在阅读这些东西,但这一切似乎都是关于测试功能的。我不知道是否有可能用命令行参数测试整个脚本,至少有人能说这是否可能? –
这一个可能更你在找什么静脉:[测试Python脚本](http://stackoverflow.com/questions/5974557/testing-python-scripts)。 –