'''为什么要使用单元测试框架?:
1.当用例很多的时候用来组织用例和执行用例
2.提供丰富的比较方法
3.提供丰富的日志'''import unittest
import HTMLTestRunner
import ospath = os.getcwd()
class Test_baidu(unittest.TestCase):def setUp(self):print('每一个开始了-----------')def test_1(self):print('test_1')self.assertEqual('1','2',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('1','1')def tearDown(self):print('每一个结束了----------')@classmethoddef setUpClass(cls):print('大项目开是啦+++++++++')@classmethoddef 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 ospath = os.getcwd()
class Test_baidu(unittest.TestCase):def setUp(self):print('每一个开始了-----------')def test_1(self):print('test_1')self.assertEqual('1','2',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('1','1')@unittest.skipIf(3<2,'当条件为真时跳过测试,条件为假的时候执行案例')def test_4(self):print('test_4')self.assertIs('1','1')@unittest.skipUnless(3<2,'当条件为假的时候不执行测试用例')  #unless 除非def test_5(self):print('test_5')self.assertIs('1','1')def tearDown(self):print('每一个结束了----------')@classmethoddef setUpClass(cls):print('大项目开是啦+++++++++')@classmethoddef 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()

转载于:https://www.cnblogs.com/tarzen213/p/11108860.html

为什么要用unittest相关推荐

  1. python selenium unittest_python+selenium+unittest——ui自动化的轻量级选择

    最近项目部分趋于稳定,部分功能进入了维护阶段,但每次的小改动都需要进行回归测试,回归的用例不多但也算是重复劳动浪费资源.为了节约这部分人力,我考虑引入web的ui自动化.之前在其他项目中用的都是jav ...

  2. linux下运行python unitest_Python unittest打印日志可以在Linux上运行,但在Windows上不行...

    我正在尝试编写一个unittest,它将stdout和stderr重定向到一个写在Windows网络驱动器上的文件.出于某些原因,相同的脚本(只有diff.是目录路径)可以在Linux上工作,但在Wi ...

  3. 软件测试培训教程:pytest与unittest区别

    在软件测试培训教程中,会讲到关于pytest与unittest区别,那么本期教程小编就为大家详细的介绍一下pytest与unittest区别有哪些? pytest与unittest区别: 一.用例编写 ...

  4. unittest 框架学习

    为什么80%的码农都做不了架构师?>>>    今天我学习了,怎么把testcase分到不同的文件中,然后在集中到一个testsuite中一起跑,我还学会了怎么打包,怎么引用. 打包 ...

  5. unittest安装教程_unittest框架与自动化测试环境的搭建

    1.unittest框架简介 首先以selenium IDE录制的一段代码为例(脚本的录制请参考其他文档),说明unittest框架的使用. 图 1 要使用unittest框架,首先需要import ...

  6. python unit test 访问开发代码,使用Python的unittest模块作为testrunner时,如何在测试前运行初始化代码?...

    How can a user of a library run his own initialization code (setting debug levels of loggers for exa ...

  7. python中setup什么意思_Python unittest中setUp()和setUpClass()有什么区别?

    当您在班级中有多个测试方法时,差异就会显现出来. setUpClass和tearDownClass为整个类运行一次; setUp和tearDown在每个测试方法之前和之后运行. 例如: class E ...

  8. unittest框架执行用例

    pycharm中运行脚本的方式总共有三种,分别为:unittest模式,pytest模式,普通模式,今天主要来聊一聊unittest模式执行与普通执行(因为最近在学习unittest框架,所以pyte ...

  9. python 单元测试_聊聊 Python 的单元测试框架(一):unittest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...

  10. python装饰器执行顺序_python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures...

    1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...

最新文章

  1. 搭建Hadoop集群步骤
  2. 网络上可供测试的Web Service
  3. 《麻省理工学院技术评论》评出最新十大突破性技术
  4. 神在夏至祭降下了神谕(oracle)
  5. 22道Java面试题,看看你会了多少?
  6. C# MD5加密解密帮助类
  7. 快速附加没有日志文件的 SQL Server 数据库文件!
  8. 网络中工作组与域的解释
  9. android实现文本输入,Android实现智能提示的文本输入框AutoCompleteTextView
  10. 【leetcode】590. N-ary Tree Postorder Traversal
  11. Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书
  12. luoguP4242树上的毒瘤
  13. 32个程序员泪(méng)流(fān)满(quán)面(chǎng)的瞬间
  14. Java开发者必备:超全的Java问题排查工具单
  15. 二叉树后序遍历_二叉树后序遍历非递归实现
  16. 微软创投加速器最新成果展示:人工智能技术杀入时尚界
  17. 海量图标矢量图免费下载【来自阿里】
  18. c语言计算三个并联电阻,3个电阻并联怎么计算
  19. android 微信自带表情,Android 软键盘和emoji表情切换方案,和微信几乎一样的体验...
  20. U盘启动盘cmd制作

热门文章

  1. Win32下病毒设计入门详细解说
  2. Java多线程同步Synchronized深入解析
  3. 关于解决tomcat的一个错误
  4. Shrio Unable to execute ‘doFinal‘ with cipher instance
  5. springboot学习笔记(五)
  6. 浅谈以太坊智能合约的设计模式与升级方法
  7. 深入理解Linux内存管理--目录导航
  8. Android7.0 PowerManagerService(2) WakeLock的使用及流程
  9. Android安全系列工具
  10. IDA Pro ARM指令集和Thumb指令集的切换