Python 同一文件中,有unittest不执行“if __name__ == '__main__”,不生成HTMLTestRunner测试报告的解决方案

1、问题:Python中同一个.py文件中同时用unittest框架和HtmlReport框架后,HtmlReport不被执行。

2、为什么?其实不是HtmlReport不被执行,也不是HtmlReport不生成测试报告,是因为if __name__ == ‘__main__‘中的代码根本没执行好嘛!

3、解决方案的来源:因为最开始我的main代码中没有写print打印语句。没有生成HTML报告,我也在网上找了很久的方法,后来才怀疑是不是没有运行main方法,于是写了个print语句,果然没有运行。于是找了一下python unittest的运行方式,终于找到解决方案,现在分享给大家。

示例代码:

 1 import unittest
 2 import HtmlTestRunner
 3
 4 class DemoTest(unittest.TestCase):
 5
 6     def test_one(self):
 7         print(‘第一条case‘)
 8     def test_two(self):
 9         print(‘第二条case‘)
10
11 if __name__ == ‘__main__‘:
12     print("开始main")
13     suite = unittest.TestSuite()
14     suite.addTest(DemoTest(‘test_one‘))
15     suite.addTest(DemoTest(‘test_two‘))
16
17     filename = ‘E:\\test.html‘
18     fp = open(filename, ‘w‘)
19
20     runner = HtmlTestRunner.HTMLTestRunner(stream=fp, output=‘E:/‘,report_title=‘test-results‘,
21                                            descriptions=u‘第一个python unittest‘)
22     runner.run(suite)
23
24     fp.close()

运行:

控制台显示结果如上,并没有打印出"开始main"。为什么呢?是因为运行方式没对。

1、打开edit configuration。如下图:

2、查看运行方式,有两种Python和Python tests。如下图,第一种方式其实和在cmd中执行python123.py一样。

3、手动添加python运行方式。如下图:记得点OK~~~~写漏了一步

3、直接运行就好。

4、去E盘下找到了生成的HTML报告

好了,~~bye bye~~

Python 同一文件中,有unittest不执行“if __name__ == '__main__”,不生成HTMLTestRunner测试报告的解决方案

时间: 2024-11-02 10:47:24

Python 同一文件中,有unittest不执行“if __name__ == '__main__”,不生成HTMLTestRunner测试报告的解决方案的相关文章

python unittest不执行"if __name__ == '__main__' "问题

问题: selenium导入unittest框架和HtmlReport框架后,HtmlReport不被执行. 假设代码为: 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 "

python中关于不执行if __name__ == '__main__':测试模块的解决

1.新建测试脚本文件: 2.编辑测试脚本 import unittest import requests import json import HTMLTestRunner ur1 = 'http://118.178.247.67:8081/systLogonUser/adminLogon.do' headers = {'Content-Type':'application/x-www-form-urlencoded','Referer':'118.178.247.67'} data = { '

Python工程文件中的名词解释---Module与Package的区别

当我们在已有的Python工程文件中创建新的内容是,通常会有两种类型文件供你选择---Module和Package,对于初学者来说会搞不清楚这两种文件直接的关系.这里就来解释一下这两者之间的关系. Module简介:  中文翻译成"模块",所谓的模块其实就是能够独立的完成一组任务的代码集.在Python里面Module一般就是一个独立的.py文件(有时候也可能是多个). Package简介:  中文翻译成"包",在Python中,Package就相当于多个Modul

python把文件中的邮箱分类 保存到相应的文件里面

python把文件中的邮箱分类 保存到相应的文件里面(测试数据100W数据时间10秒) #coding:utf-8 import time import linecache def readfile(file):     #读取数据     list_dict = {}     file_data =  [ x.replace('\n','') for x in linecache.getlines(file) if '@' in x ]     #把后缀名组成字典中的keys,按照要求把文件中

利用Python从文件中读取字符串(解决乱码问题)

首先声明这篇学习记录是基于python3的. python3中,py文件中默认的文件编码就是unicode,不用像python2中那样加u,比如u'中文'. 不过在涉及路径时,比如C:\Users\Administrator\Desktop\StudyNote\Python,还是要加r. eg:r'C:\Users\Administrator\Desktop\StudyNote\Python'. 因为\是转义符,想输出'\'得写成'\\'才可以.加了r就可以让python自动处理字符串,最终的字

python 修改文件中的内容

在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内容,如果是就替换内容,并且将修改替换过的内容和没有修改的内容全部写入到新的文件中. # 打开旧文件 f = open('file_text.txt','r',encoding='utf-8') # 打开新文件 f_new = open('file_text_bak.txt','w',encoding

phpcms-v9 前台模板文件中{pc}标签的执行流程

前台pc标签的使用:{pc:content 参数名="参数值" 参数名="参数值" 参数名="参数值"} 如: {pc:content action="lists" catid="9" cache="3600" num="20" page="$page"}{/pc} 执行流程如下:     ①模块名:content     ②模块类文件:modul

Python从文件中读取数据

一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name is joker, I am 18 years old, How about you? 如何读取文件全部内容,我们编写到reader.py文件中. reader.py 1 with open('resource.txt') as file_obj: 2 content = file_obj.read() 3 print(content) 4 需要注意的是需要

python对文件中的关键词查找替换,实现自动获取配置

1.目的 想对update_variable.py文件中的配置进行修改,数据通过系统接口自动获取 update_variable.py my_name='null' my_age=18 2.代码 update_file.py # name=phyger # line='my name: {name}' # new=line.replace('{name}',name) # print(new) # cur_abspath=os.path.abspath(__file__) import os c