python基础篇:单元测试unittest(代码片段)

风流少年 风流少年     2022-12-02     700

关键词:

一:简介

  • 测试类必须继承unittest.TestCase,测试方法名必须以test开头才算测试方法)

  • 测试方法如果是以test开头后面跟数字,测试执行顺序就按照数字顺序来执行,否则按照方法的前后声明来执行

  • 一个测试方法叫一个 TestCase

  • 一个测试类叫 TestSuite

  • 测试加载器 TestLoader 用于加载多个TestCase

  • 文本测试运行器 TextTestRunner 将测试结果以文本的形式输出到控制台

  • HTML测试运行器 HTMLTestRunner 将测试结果写到.html文件中

序号断言方法断言描述
1assertEqual(arg1, arg2, msg=None)验证arg1=arg2,不等则fail
2assertNotEqual(arg1, arg2, msg=None)验证arg1 != arg2, 相等则fail
3assertTrue(expr, msg=None)验证expr是true,如果为false,则fail
4assertFalse(expr,msg=None)验证expr是false,如果为true,则fail
5assertIs(arg1, arg2, msg=None)验证arg1、arg2是同一个对象,不是则fail
6assertIsNot(arg1, arg2, msg=None)验证arg1、arg2不是同一个对象,是则fail
7assertIsNone(expr, msg=None)验证expr是None,不是则fail
8assertIsNotNone(expr, msg=None)验证expr不是None,是则fail
9assertIn(arg1, arg2, msg=None)验证arg1是arg2的子串,不是则fail
10assertNotIn(arg1, arg2, msg=None)验证arg1不是arg2的子串,是则fail
11assertIsInstance(obj, cls, msg=None)验证obj是cls的实例,不是则fail
12assertNotIsInstance(obj, cls, msg=None)验证obj不是cls的实例,是则fail

二:案例

testcase1.py

from unittest import TestCase


class TestCase1(TestCase):
    def test01(self):
        print('TestCase2:test01')

testcase2.py

import os
import unittest
from unittest import TestCase
from testcase1 import TestCase1


class User:
    pass


# 必须继承TestCase
# 测试方法名可以'test'开头,以数字作为编号
class TestCase2(TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        print('1. setUpClass init 多个案例最先执行一次,优先级高于setUp')

    @classmethod
    def tearDownClass(cls) -> None:
        print('4. tearDownClass destroy 多个测试方法最后只会执行一次')

    def setUp(self) -> None:
        print('2. setUp init 每个测试方法都会执行一次')

    def tearDown(self) -> None:
        print('3. tearDown destroy 每个测试方法都会执行销毁')

    def test00(self):
        print('test00')

    def test01(self):
        print('test01')
        first = 'a'
        second = 'a'
        msg = 'assert error'

        self.assertEqual(first, second, msg)
        self.assertNotEqual(first, second, msg)
        self.assertTrue(first, msg)
        self.assertFalse(first, msg)
        self.assertIsNone(first, msg)
        self.assertIsNotNone(first, msg)

        user1 = User()
        user2 = user1
        # user1 is user2
        self.assertIs(user1, user2)
        self.assertIsNot(user1, user2)
        self.assertIn(1, [1, 2, 3])
        self.assertNotIn(1, [2, 3, 4])

        self.assertIsInstance(1, int)
        self.assertNotIsInstance([1, 2, 3], dict)

        self.assertGreater(2, 1, '2 > 1')
        self.assertGreaterEqual(1, 1, '1 >= 1')

        self.assertLess(1, 2, '1 < 2')
        self.assertLessEqual(1, 2, '1 <= 2')

    @unittest.skipIf(2 > 1, 'skipIf:condition为true跳过')
    def test03(self):
        print('test03')

    @unittest.skip('跳过该测试案例skip')
    def test02(self):
        print('test02')

    @unittest.skipUnless(2 > 1, 'skipUnless: condition为true执行,为false不执行')
    def test04(self):
        print('test04')


if __name__ == '__main__':
    # 运行方式一:运行当前文件中以test开头的函数
    unittest.main()

    # 运行方式二:运行多个测试类下的测试方法
    loader = unittest.TestLoader()
    testsuite1 = loader.loadTestsFromTestCase(TestCase1)
    testsuite2 = loader.loadTestsFromTestCase(TestCase2)

    suite = unittest.TestSuite([testsuite1, testsuite2])
    runner = unittest.TextTestRunner()
    runner.run(suite)

    # 方式三:运行指定目录下的所有以test开头的py文件
    tests = unittest.defaultTestLoader.discover(os.path.dirname(__file__), pattern='test*.py')
    suite = unittest.TestSuite()
    suite.addTest(tests)
    runner = unittest.TextTestRunner()
    runner.run(suite)

python基础篇:单元测试unittest(代码片段)

一:简介测试类必须继承unittest.TestCase,测试方法名必须以test开头才算测试方法)测试方法如果是以test开头后面跟数字,测试执行顺序就按照数字顺序来执行,否则按照方法的前后声明来执行一个测试方法叫一个Te... 查看详情

python单元测试:unittest使用简介(代码片段)

一、概述  本文介绍python的单元测试框架unittest,这是Python自带的标准模块unittest。unittest是基于java中的流行单元测试框架junit设计的,其功能强大且灵活,对于熟悉junit的人来说掌握unittest很简单。   unittest涉及... 查看详情

软件测试:python接口自动化之unittest单元测试(代码片段)

...分析,总结出一套简洁的请求类封装。以下主要介绍unittest特性、运行流程及实际案例。一、单元测试三连问1、什么是单元测试?按照阶段来分,一般就是单元测试,集成测试,系统测试,验收 查看详情

单元测试框架之unittest(代码片段)

...我们展示了一个小例子,在代码的前两行是如下内容importunittestclassTestStringMethods(unittest.TestCase):它的意义何在呢?importunittest导入unittest模块,使得我们可以使用它,classTestStringMethods(unittest.TestCase):新创建的测试类继承了unittest.Tes... 查看详情

python单元测试框架:unittest

主要介绍了Python单元测试框架unittest使用方法讲解,本文讲解了unittest概述、命令行接口、测试案例自动搜索、创建测试代码、构建测试套件方法等内容 概述1.测试脚手架(testfixture)测试准备前要做的工作和测试执行完后要做的... 查看详情

单元测试--unittest(代码片段)

单元测试框架:unittest pytestuniittest:  unittest是python内置的单元测试框架,具有编写用例,组织用例,执行用例,输出测试报告等自动化框架的条件。  unittest中的5个重要概念:testFixture,TestCase,TestSuite,TestLoder,TextTestRunner ... 查看详情

unittest测试框架_1_基础介绍(代码片段)

unittest,python自带的单元测试框架。该框架的结构如下:1、Testcase:一个Testcase就是一个测试用例,包括测试前环境的搭建(setUP)、实现测试过程的代码,以及测试后环境的还原(TearDown).2、TestSuite:一个功能的验证,需要个多个... 查看详情

单元测试--unittest(代码片段)

...块、一个函数或者一个类来进行正确性检验的测试工作。unittest:python内置的单元测试框架,具备编写用例、测试用例、执行用例、输出报告等自动化框架的条件。unittest的四个核心概念:   testcase:一个完整的测试单... 查看详情

unittest单元测试(代码片段)

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。在说unittest之前,先说几个概念:TestCase也就是测试用例TestSuite 多个测试用例集... 查看详情

pythonunittest详解一(基础入门)(代码片段)

 unittest单元测试框架最初受JUnit启发,与其他语言的主要单元测试框架具有相似的风格。它支持测试自动化,支持开启或关闭某个测试,支持结合测试。另外它可以生成各个单元测试的报告。为了实现以上功能,unitTest提供了... 查看详情

selenium自动化测试-unittest单元测试框架使用(代码片段)

一、什么是unittest这里我们将要用的unittest是python的单元测试框架,它的官网是https://docs.python.org/2/library/unittest.html,在这里我们可以得到全面的信息。当我们写的用例越来越多时,我们就需要考虑用例编写的规范与组织,以便于... 查看详情

单元测试框架-unittest

...部署1.Web功能自动化测试——为什么要学习单元测试框架unittest?除此之外还有没有其他的单元测试框架?Python语言编写的WebDriver测试脚本通常使用单元测试框架来运行,所以,了解单元测试框架的基本方法和使用技巧... 查看详情

单元测试框架之unittest(代码片段)

一、摘要前篇文章已经详细介绍了unittest框架的特性,足以满足我们日常的测试工作,但那并不是unittest的全部,本片博文将介绍一些应该知道但未必能经常用到的内容然而,想全部掌握unittest还远远不够二、命令行模式执行用例... 查看详情

pytest接口自动化零基础入门到精通(01)入门基础篇(代码片段)

...失败。支持重复执行(reruns)失败的case。支持运行由nose、unittest编写的测试case。可生成html报告。可以很好的和CI工具结合,例如jenkins。可支持执行部分用例。10.具有很多第三方插件,并且可以自定义扩展。pytest和unittest的... 查看详情

单元测试unittest1基本概念(代码片段)

基本概念unittest是python自带的单元测试框架,有时候被称为"PyUnit",是python版本的JUint实现。在学习使用unittest库之前,我们需要了解一下unittest库的一些重要概念:testfixture:代表了用例执行前的准备工作和用例执行之后的清... 查看详情

单元测试-unittest(代码片段)

一、简介unittest单元测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。 二、属性介绍1、unittest模块的各个属性unittest.TestCase:TestCase类,所有测试用例类继承的基本类。... 查看详情

unittest单元测试框架总结(代码片段)

  unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。今天笔者就总结... 查看详情

python单元测试之unittest框架使用总结

...放到一个测试模块里,就是一个完整的单元测试 二、unittest工作原理unittest中最核心的四部分是:TestCase,TestSuite,TestRunner,TestFixture(1)一个TestCase的实例就是一个测试用例。测试用例就是指一个完整的测试流程,包括测试... 查看详情