python-unittest

1. unittest.TestCase类中的常用的断言方法

方法 用途
assertEqual(a, b) 核实 a == b
assertNotEqual(a, b) 核实 a != b
assertTrue(x) 核实 x 为True
assertFalse(x) 核实 x 为False
assertIn(itemlist) 核实itemlist
assertNotIn(itemlist) 核实item不在list

1.1 子测试:记录错误并测试完所有的代码

class DemoTest(unittest.TestCase):
    def test_subtest(self):
        for i in range(5):
            with self.subTest(name=i):  # 子测试参数用于输出
                self.assertEqual(i % 2, 0)

>>>
(djProj_py3) appledeMacBook-Air-7:tests apple$ python -m unittest test_a.DemoTest.test_subtest

======================================================================
FAIL: test_subtest (test_a.DemoTest) (name=1)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/apple/PycharmProjects/work/practice/tests/test_a.py", line 19, in test_subtest
    self.assertEqual(i % 2, 0)
AssertionError: 1 != 0

======================================================================
FAIL: test_subtest (test_a.DemoTest) (name=3)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/apple/PycharmProjects/work/practice/tests/test_a.py", line 19, in test_subtest
    self.assertEqual(i % 2, 0)
AssertionError: 1 != 0

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (failures=2)

1.2测试套件:将多个用例或套件的实例组合起来,完成产品功能组级别的测试。

分别为每个参与测试方法创建实例,并加入套件。

class UserTest(unittest.TestCase):

    def test_user(self):
        self.assertTrue(True)  # 判断是否为真

class CartTest(unittest.TestCase):

    def test_cart(self):
        self.assertFalse(False)

suite = unittest.TestSuite()
suite.addTests((UserTest(‘test_user‘),  # 创建实例并加入套件suite
               CartTest(‘test_cart‘),)
               )
unittest.TextTestRunner(verbosity=2).run(suite)
# code end!!
>>>
(djProj_py3) appledeMacBook-Air-7:tests apple$ python test_a.py
test_user (__main__.UserTest) ... ok
test_cart (__main__.CartTest) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

批量测试单个用例,可通过重写runTest

class TestDamo(unittest.TestCase):
    def add(self):
        self.assertTrue(1)

    def add1(self):
        self.assertFalse(‘‘)

    def runTest(self):
        tests = (self.add, self.add1)
        for test in tests:
            with self.subTest(t=test):
                test()

>>>
(djProj_py3) appledeMacBook-Air-7:tests apple$ python -m unittest -v test_a.py
runTest (test_a.TestDamo) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

原文地址:https://www.cnblogs.com/tangpg/p/9591940.html

时间: 2024-07-30 19:21:28

python-unittest的相关文章

Python中unittest采用不同的参数组合产生独立的test case

我们在使用Python的unittest做自动化或者单元测试时,有时需要一个测试用例根据不同的输入.输出组合而执行多次,但是,unittest中一个用例只能有一组参数组合执行,如果采用循环的方式,在生成的测试报告中也只会有一个测试用例的统计,单实际上我们需要一组参数就统计为一个测试用例,又或者将用例复制N份(这种方式谁然可以满足需求,单实际上维护太麻烦,如果有一个改动,需要复制N份),那么我们应该采用什么样的办法来实现我们的需求呢?经过查找资料和百度,我们可以采用Python的setattr函数

selenium + python自动化测试unittest框架学习(二)

1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py >test_case >__init__.py >test_case1..... >public >__init__.py >login.py >loginout.py test_case文件夹主要存放测试用例,且测试用例命名以test_开头 public文件夹是test

selenium + python自动化测试unittest框架学习(一)selenium原理及应用

unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻.unittest框架学习需要掌握以下知识点: (1)Selenium原理及工具使用 (2)webdriver元素定位,id,name,class name,css seletor,xpath (3)python语言基础,模块,参数化,语言,装饰器 (4)unittest框架认识及学习:模块化,断言,参数化,数

Python-面向对象(三 元编程)

译注:这是一篇在Stack overflow上很热的帖子.提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程.于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去.而e-satis同学本人在Stack Overflow中的声望积分也高达6

学习python-安装和配置环境变量

Python下载 Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到: Python官网:http://www.python.org/ 你可以在一下链接中下载Python的文档,你可以下载 HTML.PDF 和 PostScript 等格式的文档. Python文档下载地址:www.python.org/doc/ Python安装 Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上). 您需要下载适用于您使用平台的二进制代码,然后安装Python. 如果

python单元测试-unittest

python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest 1.介绍下unittest的基本使用方法: 1)import unittest 2)定义一个继承自unittest.TestCase的测试用例类 3)定义setUp和tearDown,在每个测试用例前后做一些辅助工作. 4)定义测试用例,名字以test开头. 5)一个测试用例应该只测试一个方面,测试目的和测试内容应很明确.主要是调用assertEqual.assertRaises等断言方法判断程序执行结果和预

Pycharm上python和unittest两种姿势傻傻分不清楚

前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告:为什么别人运行结果跟我的不一样啊... 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittest模块,pycharm会自动识别以unittest的姿势去运行了. 一.unittest运行单个用例 1.如下代码,如果我只想运行其中的一个,如test1,如何运行呢? 2.如果想运行哪个用例,鼠标放到对应的区域,右键就能直接运行单个用例了 3.注意上图红色框框,显示的是Run 'Unittest

跟着大王学Python-基础学习(Day1)

这么多年来一直有打算整理一个自己的博客,从WordPress.51Cto.blog163等等这些没有一个我坚持写下去的,反思其结果总有这样或者那样的一些借口来进行自我辩护,其实自己内心深处是知道最原始的问题.今天是我学习Python的第一天,正如老师所说的写好一个blog可以让很多人知道你,关注你.为了实现这一目标,我又开始了我的blog生涯~,我希望这是我最后申请的一个博客,我要用它来记录我的成长之路,同时也给自己一个警示.目标是需要脚踏实地一步一步去走过,而不是想想就能实现的.~开源的心很重

Python Selenium unittest+HTMLTestRunner实现 自动化测试及发送测试报告邮件

1.UI测试框架搭建-目录结构 2. 文件介绍 2.1.baseinfo->__init__.py 配置文件定义基础参数 #-*-coding:utf-8-*- #测试用例配置参数 base_url = "http://xxxxx.com" undirect_username = "username" undirect_password = "password" direct_username = "username"