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 ...
随机推荐
- Spring Boot应用的启动和停止(Spring Boot应用通过start命令启动)
Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行.产品级别的基于S ...
- 【SDCC讲师专访】PingCAP联合创始人兼CEO刘奇:好的产品应开源,不闭门造车-CSDN.NET
[SDCC讲师专访]PingCAP联合创始人兼CEO刘奇:好的产品应开源,不闭门造车-CSDN.NET 小米的Themis
- ASCII流程图
http://asciiflow.com/ http://www.torchsoft.com/en/aas_information.html
- Jackson说明
Jackson说明 package com.stono.sboot2_chp4_jackson.controller; import com.fasterxml.jackson.annotation. ...
- centos 安装python2.7
安装pip sudo yum -y install epel-release sudo yum -y install python-pip 下载解压Python-2.7.3 #wget http:// ...
- httpclient发送get请求
/** * 获取httpclient的请求url地址 */ public static String getUrl(){ String url = "http://"+map.ge ...
- 解决echart在IE中使用时,在div中加入postion后图表不显示问题
<!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="height:400px;width:1 ...
- POJ1195 Mobile phones 【二维树状数组】
Mobile phones Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 14288 Accepted: 6642 De ...
- C++语言笔记系列之二十——模版
1.随意输入两个数x和y,输出最大值max. int max(int x, int y) {return x>y? x:y;} 2.函数模版 (1)用一种或者多种通用类型去表示函数--函数模版. ...
- lambda和抽象类
lambda的使用条件是‘一个接口仅有一个待实现的方法’: so,lambda不能使用在抽象类上,使用后或提示‘Target type of a lambda conversion must be a ...