Python unittest 基本框架解析(2)
下面例子,是一般测试框架的基本结构
框架知识点包括:实例化被测试模块类、装载测试用例、测试套件打包、保存测试输出结果、生成测试报告等
测试情况包括 :跳过某个case、执行成功、执行失败
#待测试模块 -> myclass.py
class myclass:
def __init__(self):
pass
def sum(self, x, y):
return x+y
def sub(self, x, y):
return x-y
def cheng(self, x, y):
return x*y
#单元测试模块 -> mytest.py
import unittest #导入测试模块
import myclass #导入待测试模块
class mytest(unittest.TestCase):
#初始化工作
def setUp(self):
self.tclass = myclass.myclass() #实例化了被测试模块中的类
#退出清理工作
def tearDown(self):
pass
#具体的测试用例
def test_sum(self):
self.assertEqual(self.tclass.sum(1,2) ,3)
#跳过某个case
@unittest.skip("I don't want to run this case.")
def test_sub(self):
self.assertEqual(self.tclass.sub(4,2) ,2)
def test_cheng(self):
self.assertEqual(self.tclass.cheng(2,3) ,5)
if __name__ == '__main__':
#装载测试用例(该句话等价于tests = [mytest("test_sum"),mytest("test_sub"),mytest("test_cheng")])
tests = unittest.TestLoader().loadTestsFromTestCase(mytest)
#使用测试套件并打包测试用例(addTests()等价于addTest())
suite = unittest.TestSuite()
suite.addTest(tests)
#保存unittest的测试输出日志
log_name = "log.txt"
with open(log_name, 'w+')as f:
result = unittest.TextTestRunner(stream = f, verbosity = 2).run(suite)
#若不保存测试输出结果,执行如下命令
#result = unittest.TextTestRunner(verbosity = 2).run(suite)
#生成测试报告
print("testsRun:%s" %result.testsRun)
print("failures:%s" %len(result.failures))
print("errors:%s" %len(result.errors))
print("skipped:%s" %len(result.skipped))
#以上“if __name__ == '__main__':”下的内容,完全可以使用“unittest。main()”替代(前提是:所有的测试模块均以test开头)
交互界面执行结果:

测试输出结果(log):
测试结果保存地址:C:\Users\xxx\Desktop

Python unittest 基本框架解析(2)的更多相关文章
- Python unittest基本框架组成(1)
Python的标准库——unittest(可以实现自动化测试框架的搭建) python unittest四大组成“元件”: test fixture(测试脚手架)——测试代码的运行环境,指测试准备前和 ...
- 《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析
unittest是展开自动化测试的基础——这个框架很重要! 我们先自己写一个测试类: 1.被测试类 Widthget.py: # coding: utf-8 class Widthget: de ...
- python unittest单元测试框架-2discover
基于TestLoader提供的discover方法实现用例执行 当用例达达到数十条后,在runtest.py文件中通过addTest()添加/删除测试用例就非常麻烦.此时可以使用discover方法找 ...
- UnitTest单元测试框架解析【实用篇】
UnitTest是展开自动化测试的基础——这个框架很重要!首先我们先自己写一个测试类: 1.被测试类 Widthget.py: # coding: utf-8class Widthget: def _ ...
- python:unittest(测试框架)
一,基本概念 TestCase:所有测试用例的基类 TestLoad:加载测试用例,返回TestSuite(测试套件) TestSuite:创建测试套件 TextTestRunner:运行测试用例 T ...
- python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures
1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...
- python unittest单元测试框架-1
Test Case.Test Suite.Test Runner.Test Fixture Test Case:单个测试用例 Test Suite:测试组合.可以把多个测试用例集合在一起执行. Tes ...
- Python web自动化测试框架搭建(功能&接口)——unittest介绍
Python UnitTest测试框架介绍 1) TestCase:所有测试用例类继承的基本类, TestCase的实例就是测试用例 2) TestSuite:测试套件 ...
- unittest 单元测试框架
引入 unittest 框架 相想使用unittest 框架,首先要引入unittest 包 import unittest class Baidu(unittest.TestCase): Baidu ...
随机推荐
- 【APUE】vim常用命令
转自:http://coolshell.cn/articles/5426.html 基本命令: i → Insert 模式,按 ESC 回到 Normal 模式. x → 删当前光标所在的一个字符. ...
- 在SUSE12中使用 Machinery 进行高级系统管理
简单介绍 在 SUSE Linux Enterprise 12 中.SUSE 如今推出了面向系统管理员的 Machinery.作为其高级系统管理模块的一部分.Machinery 是适用于 Linux ...
- Java 8中的时间
Java 8中的时间 学习了:https://blog.csdn.net/sun_promise/article/details/51383618
- Centos 6.x 安装Nagios及WEB管理nagiosql实现windows及linux监控指南
一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...
- 同步定制 Unity团队 程序的C#文件模板
孙广东 2015.7.30 就是把程序制定好的模板(不论什么人能够更改并同步git)放到,unity项目的Editor 目录下, 当程序新建一个C#脚本后就是这个模板了. "81-C# ...
- Unity Critter地图导出到server配置
普通情况下,从Critter导出的地图会与Unity自带的Navigation洪培出的地图会有比較大的差异.须要耐心调整Critter的參数才干够. 以下是我调的參数,与Unity导出的地图基本相似. ...
- JS表格分页组件:fupage的设计思路和详细使用方法(未来考虑开源,争取在2015年)
一.背景 之前在秒针工作的时候,某js高级project师写了非常多自己的组件.当中一套是分页组件.叫做st-grid. 只是在我看来,bug太多.我常常给他反馈bug,我也不清楚为啥 ...
- hduoj2094产生冠军
产生冠军 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 【iOS系列】-触摸事件与手势识别
[iOS系列]-触摸事件与手势识别 第一:触摸事件 一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象 UIEvent:称为事件对象,记录事件产生的时刻和类型 两根手指同时触摸一个view ...
- [IT学习]Python如何处理异常特殊字符
欢迎访问www.cnblogs.com/viphhs A byte of Python<输入与输出>一节中有一个处理回文的小例子(io_input.py).作者留了个思考题. 如何将标点去 ...