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)
分享到:
相关推荐
python内部自带了一个单元测试的模块,介绍下unittest的基本使用方法
主要介绍了Python unittest模块用法,结合实例形式分析了unittest模块功能及相关函数使用技巧,需要的朋友可以参考下
在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,python的unittest框架就内置这样的功能。 本文章会讲述以下几个内容: 1、Unittest 如何跳过用例 2、如何...
selenium方法的二次封装使代码变得简洁,封装的代码使用起来可读性也比较高
主要介绍了Python unittest基本使用方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试。 题目: 编写一个名为Employee的类,其方法__init__()接受名、姓和年薪,并将它们都存储在属性中。编写一个名为give_raise()的方法,它默认将...
本文实例讲述了Python中unittest的用法,分享给大家供大家参考。具体用法分析如下: 1. unittest module包含了编写运行unittest的功能,自定义的test class都要集成unitest.TestCase类,test method要以test开头,...
概述 1.测试脚手架(test fixture) 测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown(). 2.测试案例(test case) 最小的测试单元. 3.测试套件(test suite) ...python -m unittest
Python unittest 理论上是不建议参数驱动的,其用例应该专注单元测试,确保每个method的逻辑正确。 引用Stack Overflow的一个答案, “单元测试应该是独立的,没有依赖项的。这确保了每个用例都有非常具体而专一的...
本篇文件主要介绍了详解Python之unittest测试代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
基本使用步骤: 1、import unittest 2、新建一个Class继承unittest.TestCase 3、定义一个以test开头的函数作为测试用例【必须以test开头】 4、执行测试用例前都会先调用Setup函数【每个测试用例调用一次】或者...
生成 HTMLTestRunner 模块 unittest 里面是不能生成 html 格式报告的,需要导入一个第三方...两种模板如下,建议使用第一种(第一种模板更加美观) 文件内容如下: (1)第一种模板 # -*- coding: utf-8 -*- A TestR
测试Google Apps Script 的单元测试框架,松散地基于 python unittest。谷歌云端硬盘GwTest 也可以直接在 Google Drive 上访问:用法GwTest 用于测试自身; GwTest_test 中可用的套件提供了一些如何使用测试框架的...
(3)unit_test文件夹是存放测试用例(demo.py和test_unittest.py用例用法介绍,实际项目中可以按照不同模块新建python package,来存放不同模块的接口用例); (4)util对测试接口相关方法的封装:HTMLTestRunner....
TestLoader(defaultTestLoader)是unittest的测试用例加载器,它包括多个加载测试用例的方法。它的结果是返回一个测试套件。本文介绍discover()用法与功能 结构: discover(start_dir, pattern=’test*.py’, ...
演示了Python创建类的方法,定义了基本的四则运算函数,并利用unittest单元测试模块进行验证。
微小的单一源文件C ++单元测试TDD框架,其输出消息格式如Python unittest。 无需安装,只需将Cppunit类定义形式复制到您的源文件中就可以了。 执照 这是发布到公共领域的免费且不受限制的软件。 有关更多信息,请...