您当前的位置:首页 > 计算机 > 编程开发 > Python

OJ系统原理与实现:Python自动化测试另一个Python程序功能是否正确

时间:01-08来源:作者:点击数:
CDSY,CDSY.XYZ

问题描述:

编写程序2subprocess_test.py测试另一个Python程序2subprocess_homework.py的功能是否正确(不考虑具体的代码实现方式)。程序2subprocess_homework.py预设的功能为“键盘输入若干行使用英文半角逗号分隔的自然数,把该行每个自然数加5后按原来的格式输出(每行若干自然数,使用英文半角逗号分隔),如果没有输入任何内容就直接回车确认表示输入结束”。为了实现自动测试,程序2subprocess_test.py调用程序2subprocess_homework.py,并使其自动从文件2in.txt中读取内容作为测试用例,并把处理后的结果自动写入文件2out.txt中。如果文件2out.txt中的内容和预期一样,则表示程序2subprocess_homework.py的功能正确。为避免被测程序2subprocess_homework.py中有死循环,如果20秒内没有执行完,直接结束被测程序的执行,并判断功能错误。

在本文代码基础上,结合Socket或其他方式实现在线提交代码,即可实现Python在线编程评测系统,董付国老师免费提供的“Python小屋刷题神器”也是基于这个原理实现编程题在线评测的。

被测程序2subprocess_homework.py代码:

测试主程序2subprocess_test.py代码:

测试数据文件2in.txt内容:

输出文件2out.txt内容:

修改被测程序文件,故意制造语法错误,如图,

重新运行测试主程序,结果如下:

CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门