:在学习过程中,使用PyCharm 学习unittest框架,调用HTMLTestRunner确不能生成报告。经过百度,搜索解决方法。
解决过程:
1.鼠标放在方法里,右键,只实现了鼠标所在方法。执行结果如图1
图12,鼠标右键放在if __name__ =='__main__':,执行结果如图2,结果没有生成报告。
图23,百度说是可能main方法没有执行,故在main方法中添加一行:print("开始test")。经试验果然没有执行。
4,百度查找方法:https://www.cnblogs.com/yanfensun/p/9636858.html,执行链接步骤:
a,修改编辑环境如图3
3b,删除原环境
4c,路径执行.py文件
5可能是理解不对,还是无法生成。
5,在百度说是通过命令窗口执行。在.py文件夹,shift+鼠标右键,如图6,进入命令窗口。
6执行python -m unittest test8.py,如图7,依然没有生成报告
76,https://www.jianshu.com/p/c440ead0a9cb
通过此贴,执行Alt+Shift+f10,执行成功,生成文件。如图8,9
8 9感谢五娃,感谢卜了了,终于解决了这个问题。
总结:一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。
if __name__ == '__main__':的运行原理:
每个python模块(python文件,也就是此处的 test.py 和 import_test.py)都包含内置的变量 __name__,当该模块被直接执行的时候,__name__ 等于文件名(包含后缀 .py );如果该模块 import 到其他模块中,则该模块的 __name__ 等于模块名称(不包含后缀.py)。
简而言之就是:__name__ 是当前模块名,当模块被直接运行时,模块名为 __main__ ,代码将被运行;当模块是被导入时,代码不被运行。
网友评论