`

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自动化接口测试框架

    unittest与requests结合,可以在测试用例中构造请求,发送到目标接口,然后使用unittest的断言方法验证响应。 在描述中提到的“发送简单的测试报告”,这可能是指使用unittest提供的TestResult类,它可以记录测试的...

    python unittest基本介绍

    ### Python Unittest 基本介绍 Python 是一种广泛使用的高级...总之,通过上述内容,我们可以了解到 `unittest` 的基本使用方法以及如何编写有效的测试用例。这将有助于开发者更好地维护代码质量和提高软件的可靠性。

    python-unittest-v2.zip

    2. **unittest用法**: - **定义测试用例**:继承unittest.TestCase,自定义测试方法,以`test_`开头。 - **断言方法**:如`assertEqual()`, `assertTrue()`, `assertFalse()`等,用于判断预期结果是否与实际结果...

    python+selenium+unittest环境搭建1

    Python+Selenium+Unittest环境搭建详解 Python+Selenium+Unittest环境搭建是自动化测试中的一种重要组件,本文将详细介绍如何搭建Python+Selenium+Unittest环境,并解决在搭建过程中可能遇到的问题。 一、安装...

    Python库 | unittest_xml_reporting-1.5.0-py2.5.egg

    对于Python 2.5,可能需要使用`easy_install`,命令行输入`easy_install unittest_xml_reporting-1.5.0-py2.5.egg`。 2. **导入库**:在你的测试脚本中,你需要导入`unittest_xml_reporting`库,这样就可以使用它的...

    python单元测试unittest实例详解-电脑资料.pdf

    unittest是Python内置的一个测试框架,它提供了丰富的工具和类来编写和运行单元测试。 unittest框架的主要组件包括: 1. `TestCase`: 这是所有测试用例的基础类,你可以创建子类并定义方法来测试你的代码。每个...

    python3+unittest+request+ddt接口测试

    总的来说,使用Python3、unittest、requests和ddt进行接口测试,可以帮助我们构建出结构清晰、可维护性高的测试代码,确保接口的稳定性和正确性。通过数据驱动,我们可以方便地管理大量测试数据,提高测试覆盖率,...

    使用Python的unittest框架来编写测试用例

    Python的unittest框架是Python内置的测试框架,它提供了一套...通过阅读"使用Python的unittest框架来编写测试用例.pdf"、"注意.pdf"、"注意下.pdf"和"说明.pdf"这些文档,你可以深入理解unittest的使用方法和最佳实践。

    Python unittest工作原理和使用过程解析

    ### Python unittest 工作原理与使用过程解析 ...熟练掌握 `unittest` 的使用方法对于提高代码质量和维护性非常重要。希望本文能帮助读者更好地理解和应用 `unittest`,并在实际项目中发挥其应有的作用。

    Python-基于unittest的测试报告柱状图饼图错误截图失败重试等功能

    具体使用方法可能包括导入这个模块,配置测试运行器,然后调用相应的方法运行测试。 总的来说,这些增强功能提高了unittest测试的可读性和效率,使得测试过程更加自动化和智能化。通过这样的方式,开发者可以更快地...

    Python unittest discover批量执行代码实例

    本文将详细介绍如何使用 `unittest` 模块中的 `discover` 方法来批量执行测试用例。 #### 二、unittest discover方法介绍 `unittest` 模块中的 `discover` 方法允许开发者自动查找指定目录下的所有测试用例并运行...

    Python unittest单元测试框架实现参数化

    Python作为一种广泛使用的编程语言,提供了多种单元测试框架,其中`unittest`是最为常用的一个。然而,在进行大量重复性的测试用例编写时,如需对同一函数的不同输入进行验证,单纯使用`unittest`可能会显得繁琐且...

    python+selenium+unittest自动化测试demo

    Python+Selenium+Unittest自动化测试框架是一个强大的组合,用于高效地进行Web应用的自动化测试。在本示例中,我们看到一个基于这三个组件构建的自动化测试项目,它提供了丰富的功能,如测试用例管理、批量执行、...

    Python3+unittest+requests+excel实现接口自动化测试框架源码

    4. 断言验证:比较请求响应与预期结果,使用unittest的断言方法判断测试是否通过。 5. 执行测试:使用unittest的命令行工具或IDE运行测试,生成测试报告。 综上所述,这个接口自动化测试框架充分利用了Python的灵活...

    Python unittest模块用法实例分析

    本文实例讲述了Python unittest模块用法。分享给大家供大家参考,具体如下: python的unittest模块提供了一个测试框架,只要我们写一个继承unittest.TestCase的类,类中用setUp做初始化,用tearDown做清理。 主要...

    Python-BeautifulReport适用于unittest自动化测试的可视化报告

    Python-BeautifulReport是一款专为unittest自动化测试设计的可视化报告生成工具。它旨在提供一种美观、易读的方式来展示测试结果,使测试人员和开发者能够快速理解测试执行的状态,从而提高测试效率和代码质量。 在...

    Python3+unittest+requests+excel实现接口自动化测试框架

    1. 使用unittest定义测试类和测试方法。 2. 通过requests库调用接口并处理响应。 3. 从Excel文件中读取测试数据,用于接口请求。 4. 使用HTMLTestRunner生成测试报告。 5. 邮件发送测试报告,使用smtplib和email库...

    python+selenium+unittest 只启动一次浏览器方法(csdn)————程序.pdf

    在自动化测试领域,Python结合Selenium与unittest框架的使用非常常见。这个场景中,我们讨论的是如何在多个测试用例间有效地管理和复用浏览器实例,避免每次测试开始时都重新启动浏览器,从而提高效率和资源利用率。...

Global site tag (gtag.js) - Google Analytics