unittest(1)
一、unittest核心概念
1.unittest四个核心概念
2.unittest属性
'TestResult', 'TestCase', 'TestSuite','TextTestRunner', 'TestLoader'
'FunctionTestCase', 'main','defaultTestLoader', 'SkipTest', 'skip',
'skipIf', 'skipUnless','expectedFailure', 'TextTestResult',
'installHandler','registerResult', 'removeResult', 'removeHandler'
from .result import TestResult
from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
skipUnless, expectedFailure)
from .suite import BaseTestSuite, TestSuite
from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
findTestCases)
from .main import TestProgram, main
from .runner import TextTestRunner, TextTestResult
from .signals import installHandler, registerResult, removeResult, removeHandler
二、testCase
1.TestCase所含的方法
'addCleanup', 'addTypeEqualityFunc', 'assertAlmostEqual',
'assertAlmostEquals', 'assertCountEqual', 'assertDictContainsSubset',
'assertDictEqual', 'assertEqual', 'assertEquals', 'assertFalse',
'assertGreater', 'assertGreaterEqual', 'assertIn', 'assertIs',
'assertIsInstance', 'assertIsNone', 'assertIsNot', 'assertIsNotNone',
'assertLess', 'assertLessEqual', 'assertListEqual', 'assertLogs',
'assertMultiLineEqual', 'assertNotAlmostEqual', 'assertNotAlmostEquals',
'assertNotEqual', 'assertNotEquals', 'assertNotIn',
'assertNotIsInstance', 'assertNotRegex',
'assertNotRegexpMatches', 'assertRaises', 'assertRaisesRegex',
'assertRaisesRegexp', 'assertRegex', 'assertRegexpMatches',
'assertSequenceEqual', 'assertSetEqual', 'assertTrue',
'assertTupleEqual', 'assertWarns', 'assertWarnsRegex',
'assert_', 'countTestCases', 'debug', 'defaultTestResult',
'doCleanups', 'fail', 'failIf', 'failIfAlmostEqual',
'failIfEqual', 'failUnless', 'failUnlessAlmostEqual',
'failUnlessEqual', 'failUnlessRaises', 'failureException', 'id',
'longMessage', 'maxDiff', 'run', 'setUp', 'setUpClass',
'shortDescription', 'skipTest', 'subTest', 'tearDown',
'tearDownClass'
2.几个常用方法讲解
import unittest class unTest(unittest.TestCase):
def setUp(cls):
print("前置条件执行~\n")
def tearDown(cls):
print("后置条件执行~")
def test_add(self):
print(2+3)
def test_minus(self):
print(3-2)
if __name__ == '__main__':
unittest.main()

import unittest class unTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass前置条件执行~\n")
@classmethod
def tearDownClass(cls):
print("tearDownClass后置条件执行~")
def test_add(self):
print(2+3)
def test_minus(self):
print(3-2)
if __name__ == '__main__':
unittest.main()

三、TestSuite
import unittest class unTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass前置条件执行~\n")
@classmethod
def tearDownClass(cls):
print("tearDownClass后置条件执行~")
def test_add(self):
print(2+3)
def test_minus(self):
print(3-2)
if __name__ == '__main__':
unittest.main()
1.按模块加载TestLoader()
import unittest
class unTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass前置条件执行~\n")
@classmethod
def tearDownClass(cls):
print("tearDownClass后置条件执行~")
def test_add(self):
print(2+3)
def test_minus(self):
print(3-2)
suite=unittest.TestLoader().loadTestsFromTestCase(unTest)
unittest.TextTestRunner(verbosity=2).run(suite)
2.按类加载makeSuite
import unittest
from test01 import * suite=unittest.TestSuite(unittest.makeSuite(unTest02))
unittest.TextTestRunner(verbosity=2).run(suite)
3.addTest方法
import unittest
from test01 import * suite=unittest.TestSuite()
suite.addTest(unTest("test_add"))
suite.addTest(unTest("test_minus"))
suite.addTest(unTest02("test_multi"))
unittest.TextTestRunner(verbosity=2).run(suite)
四、TestLoader
1.loadTestsFromTestCase方法
import unittest
class unTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass前置条件执行~\n")
@classmethod
def tearDownClass(cls):
print("tearDownClass后置条件执行~")
def test_add(self):
print(2+3)
def test_minus(self):
print(3-2)
#通过类加载,把unTest下面所有的方法都添加到suite中
suite=unittest.TestLoader().loadTestsFromTestCase(unTest)
unittest.TextTestRunner(verbosity=2).run(suite)
2.loadTestsFromModule方法
import unittest
class unTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass前置条件执行~\n")
@classmethod
def tearDownClass(cls):
print("tearDownClass后置条件执行~")
def test_add(self):
print(2+3)
def test_minus(self):
print(3-2)
class unTest02(unittest.TestCase):
def test_multi(self):
print(2 * 3)
import unittest
import test01#导入模块一:test01 suite=unittest.TestLoader().loadTestsFromModule(test01)
unittest.TextTestRunner(verbosity=2).run(suite)

3.loadTestsFromName方法
import unittest
suite=unittest.TestLoader().loadTestsFromName('test01.unTest.test_minus')
unittest.TextTestRunner(verbosity=2).run(suite)
import unittest
import test01 suite=unittest.TestLoader().loadTestsFromName('unTest.test_minus',test01)
#suite=unittest.TestLoader().loadTestsFromName('unTest.test_minus',module=test01)
unittest.TextTestRunner(verbosity=2).run(suite)
4.loadTestsFromNames方法
import unittest
import test01 suite=unittest.TestLoader().loadTestsFromNames(['unTest.test_minus','unTest.test_add'],test01)
unittest.TextTestRunner(verbosity=2).run(suite)
五、TextTestRunner
unittest.TextTestRunner().run(suite)
六、输出测试报告
1.输出txt格式
import unittest
import test01 suite=unittest.TestLoader().loadTestsFromModule(test01)
filename=r"F:\reports\test.txt"
file=open(filename,'a')
runner=unittest.TextTestRunner(
stream=file,
descriptions=True,
verbosity=2
)
runner.run(suite)
2.输出html格式
filename=“F:\\reports\re.html"
file=open(filename,"wb")
runner = HTMLTestRunner.HTMLTestRunner(
stream=file,
title="测试标题",
description="报告中的文字描述"
)
runner.run(suite)
import unittest
import test01
import HTMLTestReportCN suite=unittest.TestLoader().loadTestsFromModule(test01)
filename=r"F:\reports\test.html"
file=open(filename,'wb')
runner=HTMLTestReportCN.HTMLTestRunner(
stream=file,
title="html测试报告",
tester="joba",
verbosity=2
)
runner.run(suite)
HTMLTestReportCN:以中文形式输出报告,使用形式和HTMLTestRunner差不多,只是在初始化runner稍有差异,可以带tester,对比英文版如下:
unittest(1)的更多相关文章
- 理解unittest(六)
unittest,顾名思义就是一个单元测试框架,但是它不仅适用于单元测试,还适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成 ...
- unittest(一)IDE导出的代码分析
在 Python 语言下有诸多单元测试框架,如 unittest.Pytest.nose 等,其中 unittest 框架(原名 PyUnit 框架)为 Python 语言自带的单元测试框架,从 Py ...
- unittest(简介)
一.unittest框架介绍: unittest框架是python中的一个单元测试框架,该模块包括许多的类如 TestCase 类.TestSuite 类.TextTestRunner 类.TestR ...
- Python单元测试框架:unittest(二)
一.直接使用TestCase 注意所有测试方法都需要以test开头.代码如下: import unittest class Test1(unittest.TestCase): @classmethod ...
- Python unittest(PyUnit)单元测试框架
PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试.PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用 ...
- unittest(8)- 学习ddt
import unittest from ddt import ddt, data, unpack """ 1.正常情况下,测试函数(即测试用例)中不可以传参,如果要使用 ...
- python单元测试框架-unittest(五)之跳过测试和预期失败
概要 @unittest.skip(reason): skip(reason)装饰器:直接跳过测试,并说明跳过测试的原因. @unittest.skipIf(reason): skipIf(condi ...
- python单元测试框架-unittest(四)之用例综合框架管理
简述为何如要框架? 前面测试用例与执行都是写在一个文件,当用例数量不断增加的时候,用例的执行与管理变得非常麻烦,因此需要对用例根据具体的功能模块来使用单独的模块来管理.就像一所学校要根据不同年级进行分 ...
- python单元测试框架-unittest(三)之用例执行顺序
执行顺序规则: 测试类或测试方法的数字与字母顺序0~9,A-Z 执行如下脚本,理解用例执行顺序 #coding=utf-8 import unittest class Test1(unittest.T ...
随机推荐
- 浏览器HTTP协议请求头信息
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.客户端向服务器发送一个请求,请求头包含请求的方法.URI.协议版本.以及包含请求修饰符.客户信息和内容的类似于MIME的消息结构 ...
- sublime 文件无法拖放
sublime 文件无法拖放解决方法 https://github.com/emetio/pyv8-binaries 解决: 1. 去gihub下载 PyV8,连接地址:https://github. ...
- 1、postman介绍与安装
postman介绍 官方介绍:Developers use Postman to build modern software for the API-first world. 个人理解postman是 ...
- MySQL数据库(六) —— SQL注入攻击、视图、事物、存储过程、流程控制
SQL注入攻击.视图.事物.存储过程.流程控制 一.SQL注入攻击 1.什么是SQL注入攻击 import pymysql conn = pymysql.Connect( user="roo ...
- Pandas中的DataFrame按指定顺序输出所有列的方法
问题: 输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致. 例如: import pandas as pd grades = [48,99, ...
- 一、微服务概述与SpringCloud
一.微服务概述与SpringCloud 1.微服务与微服务架构 微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,狭意的看,可以看作Eclipse里面 ...
- mtv 与mvc
1.MVC与MTV模型 MVC模型 Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型 ...
- 【POJ】1679 The Unique MST
题目链接:http://poj.org/problem?id=1679 题意:给你一组数据,让你判断是否是唯一的最小生成树. 题解:这里用的是kuangbin大佬的次小生成树的模板.直接判断一下次小生 ...
- 在Neo4j中删除节点中多个属性的方法
译者言:本文介绍了如何批量删除节点的属性的方法,重点介绍了apoc.create.removeProperties 函数的使用. 今天早些时候,Irfan和我在一个数据集上做实验,运行了一些图形算法的 ...
- keep-alive用法及(activated,deactivated生命周期)
<template> <div id="app"> <!-- <img src="./assets/logo.png"> ...