`

python unittest用法

 
阅读更多

python的unittest模块提供了一个测试框架,只要我们写一个继承unittest.TestCase的类,类中用setUp做初始化,用tearDown做清理。
主要用到的函数有:
failedinfo表示不成立打印信息failedinfo,为可选参数
self.fail([msg])会无条件的导致测试失败,不推荐使用。
self.assertEqual(value1, value2, failedinfo) # 断言value1 == value2
self.assertTrue(表达式, failedinfo) # 断言value为真
self.assertFalse(表达式, failedinfo) # 断言value为假
# 断言肯定发生异常,如果没发生异常,则为测试失败。
# 参数1为异常,参数二为抛出异常的调用对象,剩余参数为传递给可调用对象的参数。
self.assertRaises(ValueError, self.widget.resize, -1, -1)
调用时机的加self,如self.assertEqual(self.seq, range(10)),self.assertTrue(value > 100)

更详细的教程见:http://pyunit.sourceforge.net/pyunit_cn.html

 

#coding=utf-8
import random
import unittest

class TestSequenceFunctions(unittest.TestCase):
    def setUp(self):
        self.seq = range(10)
        
    def test_shuffle(self):
        # make sure the shuffled sequence does not lose any elements
        random.shuffle(self.seq)
        self.seq.sort()
        self.assertEqual(self.seq, range(10))
        
        # should raise an exception for an immutable sequence
        self.assertRaises(TypeError, random.shuffle, (1,2,3))

    def test_choice(self):
        element = random.choice(self.seq)
        self.assertTrue(element in self.seq)
 
    def test_sample(self):
        with self.assertRaises(ValueError):
            random.sample(self.seq, 20)
        for element in random.sample(self.seq, 5):
            self.assertTrue(element in self.seq)

results_fields = [
    ("username", unicode),
    ("showid", unicode),
    ("total_pv", int),
    ("pubdate", unicode),
    ("tags", list),
    ("showname", unicode),
    ("pg", int),
    ("ext", str),
]
results_fields_map = dict(results_fields)
class TestDictValueFormatFunctions(unittest.TestCase):
    def setUp(self):
        self.results = [{
            "username": u"疯狂豆花",
            "showid": u"130e28f0fe0811e0a046",
            "total_pv": 14503214,
            "pubdate": u"2012-07-07 01:22:47",
            "tags": [
                "轩辕剑",
                "天之痕"
                ],
            "showname" : u"轩辕剑之天之痕",
            "pg" : 1,
            "ext" : "mp4"
        }
        ]
    def test_format(self):
        self.assertTrue(isinstance(self.results, list), "self.results's type must be dict but got {0}".format(type(self.results)))
        for r in self.results:
            for f in results_fields_map:
                value = r.get(f, None)
                self.assertTrue(isinstance(value, results_fields_map[f]), u"{0}'s type must be {1} but got {2}".format(value, results_fields_map[f], type(value)))
                #self.assertTrue(isinstance(value, results_fields_map[f]))
    def test_value(self):
        for r in self.results:
            self.assertEqual(r["pg"], 1)
            self.assertEqual(r["ext"], u"mp4")

if __name__ == '__main__':
    # unittest.main() # 用这个是最简单的,下面的用法可以同时测试多个类
    # unittest.TextTestRunner(verbosity=2).run(suite1) # 这个等价于上述但可设置verbosity=2,省去了运行时加-v
    suite1 = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)
    suite2 = unittest.TestLoader().loadTestsFromTestCase(TestDictValueFormatFunctions)
    suite = unittest.TestSuite([suite1, suite2])
    unittest.TextTestRunner(verbosity=2).run(suite)

 

分享到:
评论
2 楼 canlynet 2014-01-20  
应该是国外的网站,被过滤了无法访问。
你百度一下就可以看到很多教程。
另外,按照例程使用即可。
1 楼 草原狙击手 2013-09-20  
http://pyunit.sourceforge.net/pyunit_cn.html  这个链接打不开呀  盼复

相关推荐

    python unittest基本介绍

    python内部自带了一个单元测试的模块,介绍下unittest的基本使用方法

    Python unittest模块用法实例分析

    主要介绍了Python unittest模块用法,结合实例形式分析了unittest模块功能及相关函数使用技巧,需要的朋友可以参考下

    Python Unittest根据不同测试环境跳过用例的方法

    在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,python的unittest框架就内置这样的功能。 本文章会讲述以下几个内容: 1、Unittest 如何跳过用例 2、如何...

    python+unittest框架自动化selenium方法的封装

    selenium方法的二次封装使代码变得简洁,封装的代码使用起来可读性也比较高

    Python unittest基本使用方法代码实例

    主要介绍了Python unittest基本使用方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python的unittest测试类代码实例

    今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试。 题目: 编写一个名为Employee的类,其方法__init__()接受名、姓和年薪,并将它们都存储在属性中。编写一个名为give_raise()的方法,它默认将...

    Python中unittest用法实例

    本文实例讲述了Python中unittest的用法,分享给大家供大家参考。具体用法分析如下: 1. unittest module包含了编写运行unittest的功能,自定义的test class都要集成unitest.TestCase类,test method要以test开头,...

    Python单元测试框架unittest使用方法讲解

    概述 1.测试脚手架(test fixture) 测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown(). 2.测试案例(test case) 最小的测试单元. 3.测试套件(test suite) ...python -m unittest

    Python unittest 简单实现参数化的方法

    Python unittest 理论上是不建议参数驱动的,其用例应该专注单元测试,确保每个method的逻辑正确。 引用Stack Overflow的一个答案, “单元测试应该是独立的,没有依赖项的。这确保了每个用例都有非常具体而专一的...

    详解Python之unittest单元测试代码

    本篇文件主要介绍了详解Python之unittest测试代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Python Unittest原理及基本使用方法

    基本使用步骤: 1、import unittest 2、新建一个Class继承unittest.TestCase 3、定义一个以test开头的函数作为测试用例【必须以test开头】 4、执行测试用例前都会先调用Setup函数【每个测试用例调用一次】或者...

    Python unittest如何生成HTMLTestRunner模块

    生成 HTMLTestRunner 模块 unittest 里面是不能生成 html 格式报告的,需要导入一个第三方...两种模板如下,建议使用第一种(第一种模板更加美观) 文件内容如下: (1)第一种模板 # -*- coding: utf-8 -*- A TestR

    GwTest:Google Apps Script 的单元测试框架,松散地基于 python unittest

    测试Google Apps Script 的单元测试框架,松散地基于 python unittest。谷歌云端硬盘GwTest 也可以直接在 Google Drive 上访问:用法GwTest 用于测试自身; GwTest_test 中可用的套件提供了一些如何使用测试框架的...

    python_unittest_interface:python+unittest接口自动化测试脚本

    (3)unit_test文件夹是存放测试用例(demo.py和test_unittest.py用例用法介绍,实际项目中可以按照不同模块新建python package,来存放不同模块的接口用例); (4)util对测试接口相关方法的封装:HTMLTestRunner....

    Python unittest 自动识别并执行测试用例方式

    TestLoader(defaultTestLoader)是unittest的测试用例加载器,它包括多个加载测试用例的方法。它的结果是返回一个测试套件。本文介绍discover()用法与功能 结构: discover(start_dir, pattern=’test*.py’, ...

    Python三维向量,单元测试unittest

    演示了Python创建类的方法,定义了基本的四则运算函数,并利用unittest单元测试模块进行验证。

    cppunit:CPlusPlusUnit-微小的单一源文件C ++单元测试TDD框架,其输出消息格式如Python unittest http-python source file

    微小的单一源文件C ++单元测试TDD框架,其输出消息格式如Python unittest。 无需安装,只需将Cppunit类定义形式复制到您的源文件中就可以了。 执照 这是发布到公共领域的免费且不受限制的软件。 有关更多信息,请...

Global site tag (gtag.js) - Google Analytics