'''为什么要使用单元测试框架?:
1.当用例很多的时候用来组织用例和执行用例
2.提供丰富的比较方法
3.提供丰富的日志''' import unittest
import HTMLTestRunner
import os path = os.getcwd()
class Test_baidu(unittest.TestCase):
def setUp(self):
print('每一个开始了-----------') def test_1(self):
print('test_1')
self.assertEqual('','',msg='1!=2') def test_2(self):
print('test_2')
self.assertIsInstance([1,2],list) @unittest.skip #虽然这个方法不执行,但是setup和teardown还要执行的
def test_3(self):
print('test_3')
self.assertIs('','') def tearDown(self):
print('每一个结束了----------') @classmethod
def setUpClass(cls):
print('大项目开是啦+++++++++') @classmethod
def tearDownClass(cls):
print('大项目结束了+++++++++++') if __name__ == '__main__':
suit = unittest.TestSuite()
suit.addTest(Test_baidu('test_2')) #先把要执行的顺序,一个一个添加进去 ---就是组织用例
suit.addTest(Test_baidu('test_1'))
suit.addTest(Test_baidu('test_3')) #有了skip的存在,加进去也没有用的
runner = unittest.TextTestRunner() #把要执行的案例添加到suit之后,用TextTestRunner()对象就可以运行了 --组织好用例一键执行
# discover = unittest.TestLoader().discover(path)
# runner1 = HTMLTestRunner.HTMLTestRunner()
# runner1.run(discover)
runner.run(suit)

上面是个 test*.py,,这个是main.py

'''当用例很少的时候可以用suit一个一个的添加。
我们要把所有的用例都放在TEST_Case作用,里面有很多test*.py, 现在只有一个u1.py''' import unittest,os
path = os.getcwd()
print(path) discover = unittest.defaultTestLoader.discover(path,pattern='u*.py') #discover 返回的就是suit,所以Testloader就是把所有的案例加载到suit中。 runner = unittest.TextTestRunner()
runner.run(discover) if __name__ == '__main__':
unittest.main(verbosity=1)

skip跳过测试用例

import unittest
import HTMLTestRunner
import os path = os.getcwd()
class Test_baidu(unittest.TestCase):
def setUp(self):
print('每一个开始了-----------') def test_1(self):
print('test_1')
self.assertEqual('','',msg='1!=2') def test_2(self):
print('test_2')
self.assertIsInstance([1,2],list) @unittest.skip #虽然这个方法不执行,但是setup和teardown还要执行的
def test_3(self):
print('test_3')
self.assertIs('','') @unittest.skipIf(3<2,'当条件为真时跳过测试,条件为假的时候执行案例')
def test_4(self):
print('test_4')
self.assertIs('','') @unittest.skipUnless(3<2,'当条件为假的时候不执行测试用例') #unless 除非
def test_5(self):
print('test_5')
self.assertIs('','') def tearDown(self):
print('每一个结束了----------') @classmethod
def setUpClass(cls):
print('大项目开是啦+++++++++') @classmethod
def tearDownClass(cls):
print('大项目结束了+++++++++++') if __name__ == '__main__':
unittest.main(verbosity=2)

生成html文件

import unittest,os
from HTMLTestRunner import HTMLTestRunner
path = os.getcwd()
print(path) discover = unittest.defaultTestLoader.discover(path,pattern='u*.py') #discover 返回的就是suit,所以Testloader就是把所有的案例加载到suit中。 htmlpath = path+r'\report.html'
print(htmlpath) f = open(htmlpath,'wb')
runner = HTMLTestRunner(stream=f,verbosity=2,title='测试报告',description='这个是自己的的测试结果') #htmltestrunner 就是对testrunner的封装 runner.run(discover)
f.close() if __name__ == '__main__':
unittest.main(verbosity=1)
import time
now = time.strftime("%Y-%m-%d %H-%M-%S")
'''原来的html文件名是写死的,重新生成就会覆盖,所有让每次名字不一样加入时间(文件名好像不能用:一直报错)'''
htmlpath = 'F:/asus/auto_file/unittest_html'+'/'+now+'report.html' f = open(htmlpath,'wb') runner = HTMLTestRunner(stream=f,verbosity=2,title='测试报告',description='这个是自己的的测试结果') #htmltestrunner 就是对testrunner的封装 runner.run(discover)
f.close()

为什么要用unittest的更多相关文章

  1. python_单元测试unittest

    Python自带一个单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 步骤1:首先引入unittest模块--import un ...

  2. python单元测试unittest

    单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和 调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而 ...

  3. Python 下的unittest测试框架

    unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...

  4. Python unittest appium

    import unittest from appium import webdriver from appium.common.exceptions import NoSuchContextExcep ...

  5. selenium-webdriver(python) (十六) --unittest 框架

    学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selen ...

  6. Node.js的UnitTest单元测试

    body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } 在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTes ...

  7. unittest使用过程中sys.exit(not self.result.wasSuccessful())

    起因: 在运行下面的unittest过程中出现了个Traceback: 被测试脚本: # splitter.py def split(line, types=None, delimiter=None) ...

  8. 三言两语聊Python模块–单元测试模块unittest

    实际上unittest模块才是真正意义上的用于测试的模块,功能强大的单元测试模块. 继续使用前面的例子: # splitter.py def split(line, types=None, delim ...

  9. unittest测试驱动之HTMLTestRunner.py

    对于自动化来说,测试报告是必须的,在敏捷化的团队中,团队中的成员需要自动化这边提供自动化的测试报告,来判断系统的整体质量以及下一步的测试策略.单元测试库生成测试输出到控制台的窗口上,但是这样的结果看起 ...

  10. unittest可能面临的问题以及解决方法

    问题1:用例的执行顺序 当使用unittest.main()时,用例的执行是按照ascall值的顺序来执行的,所以如果使用main()方法来执行用例的话,那么就需要通过命名来限制执行顺序,比如想要先执 ...

随机推荐

  1. ckeditor如何能实现直接粘贴把图片上传到服务器中?

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  2. [转]Html.DropDownList()的用法 ( Asp.Net MVC)

    Html.DropDownList()赋默认值: 页面代码如下: <% List<SelectListItem> list = new List<SelectListItem& ...

  3. Java后端进阶教程

    https://www.cnblogs.com/caoleiCoding/p/6170555.html 传智播客Java Spring框架:https://www.bilibili.com/video ...

  4. php面试专题---7、文件及目录处理考点

    php面试专题---7.文件及目录处理考点 一.总结 一句话总结: 用脑子:基本文件操作和目录操作了解一波,不必强求 1.不断在文件hello.txt头部写入一行“Hello World”字符串,要求 ...

  5. Your first HTML form

    The first article in our series provides your very first experience of creating an HTML form, includ ...

  6. php.ini 配置项详解

    本文主要对php.ini文件进行详细的解释 engine = On ——> 在apache下启用php语言引擎 short_open_tag = Off ——> 是否开启段标签  若php ...

  7. Entity Framework Code First数据库连接 转载 https://www.cnblogs.com/libingql/p/3351275.html

    Entity Framework Code First数据库连接   1. 安装Entity Framework 使用NuGet安装Entity Framework程序包:工具->库程序包管理器 ...

  8. 搭建用例管理平台phpstudy+testlink代替Apache+MySQL+PHP环境,以及testlink搭建环境报错修复

    公司需要搭建一个用例管理平台,环境搭建Apache+MySQL+PHP环境 哇一看就是需要花很长时间去搭建环境,本来我也在用这样的笨方法,不小心被公司开发看到,经人家一提点,哎呀妈呀发现自己以前的方法 ...

  9. Python 学习笔记18 异常处理

    我们在编码的过程中,难免会遇到一些错误和异常, 这时候程序会异常退出,并且会抛出错误信息: 比如: print(1/0) ''' 输出: Traceback (most recent call las ...

  10. 记录XorDDos木马清理步骤

    1.检查 查看定时任务文件发现有两个异常定时任务 [root@manage ~]# cat /etc/crontab # * * * * * user-name command to be execu ...