转:http://www.cnblogs.com/csjd/p/6366535.html
python unittest不执行"if __name__ == '__main__' "问题(Pycharm)
问题:
1、selenium导入unittest框架和HtmlReport框架后,HtmlReport不被执行。
2、IDE为Pycharm
假设代码为:
from selenium import webdriver
import unittest
class Test(unittest.TestCase):
print "this is class Test"
def setup(self):
print "this is setup"
def test_1(self):
print "this is tesecase 1"
#其他代码
def tearDown(self):
print "this is tearDown"
if __name__ == '__main__':
print "this is __name__"
#unittest.main()
网上搜索到的资料:
1、Pycharm运行导入unittest框架时,执行的的命令是“Run 'Unittests in XXX' ”,如下图所示:
2、此时执行顺序为:Class->def setup ->def test_1 ->def tearDown
3、如果执行的命令为“Run XXX”,那么会先执行class后,就执行“if __name__ == '__main__' ”
4、在代码“"if __name__ == '__main__' ”区域,右击“run xxx”即可,具体步骤参考第二个链接(有用的解决方案)
4.1 首先删除Pycharm该文件的配置,pychrm-“run”-“Edit Configurations”-"Python tests"下删除该文件的配置信息,再点击“if __name__ == '__main__' ”旁边的三角按钮,鼠标移到Run...就可以看到两个运行方式了
先用Run XXX方式运行下,然后到pychrm-“run”-“Edit Configurations”-"Python tests"下点击保存按钮,保存该配置
参考资料:
http://www.ithao123.cn/content-6035445.html
有用的解决方案:http://stackoverflow.com/questions/20835466/pycharm-wont-allow-to-run-a-file-shows-run-unittest-option-only