python的unittest和pytest

去年自觉APPium自动化的时候有去看下unittest框架如何使用,也应用到了adroid APP Appium 自动化中,但最后并没有应用到实际工作中,也因要做功能测试并废弃了自动化的学习。 记得那时搞不清楚为啥有时执行没有按用例顺序执行,还出现每次执行结果都不一样的情况,当时一脸懵逼啊。。。。今天看到一篇好文就是专门讲这些坑的。 原文:https://www.cnblogs.com/xiaohuhu/p/9808653.html 原来python脚本在pycharm中执行有3种模式:unittest,pytest,普通模式 执行结果取决于pycharm所设置的运行模式。 若需要导出测试报告则使用普通运行模式,我python的版本是3.7.1版本的 1.导入HTMLTestRunner模块 (1)下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html,下载后放到python安装目录的Lib目录下。 (2)在python的IDLE中执行:import HTMLTestRunner 若没有报错则可以正常使用, 发现有报错:大概意思是没有StringIO这个模块,查了资料是因为这个插件的脚本是python2的版本,如果要在python3中使用需要修改一些脚本,主要是有写法不兼容。按文章https://www.cnblogs.com/rechin/p/8615268.html里的修改后保存就可以使用了。 (3)这个插件的关键点在: if __name__ == '__main__': print('hello world') # unittest.main() suite = unittest.makeSuite(ALILITest) now = time.strftime('%Y-%m-%d %H_%M_%S',time.localtime()) report_path = "F:\report\" + now + '_result.html' fp = open(report_path,'wb') runner = HTMLTestRunner.HTMLTestRunner( stream=fp, title=u'ALILI测试报告', description=u'ALILI用例执行情况:') runner.run(suite) fp.close() runner.run(suite) fp.close() (4)使用普通模式执行完后在相应的目录生成测试报告 我的运行完成后测试报告中没有用例的打印内容,看了好一会没有发现原因 unitest和pytest对比 文章https://www.cnblogs.com/xiaohuhu/p/9804527.html里有讲得很清楚了,我自己只是先过一下知道两者有这些异同点,自己就只用过unittest框架简单在弄了个流程,出报告。现在看来pytest比unittest优,更适合用在项目中,后面边学边研究。 坚持!!!每天学一点!
原文地址:https://www.cnblogs.com/shanliguniang/p/10718277.html