您的位置:首页 > 编程语言 > Python开发

Python unittest测试框架详解

2016-05-16 15:54 1131 查看
概述
unittest测试框架包括如下:

1.测试脚手架(test fixture)

测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown().

2.测试案例(test case)

最小的测试单元.

3.测试套件(test suite)

测试案例的集合.

4.测试运行器(test runner)

测试执行的组件.

命令行接口

可以用命令行运行测试模块,测试类以及测试方法.

复制代码代码如下:

python -m unittest test_module1 test_module2

python -m unittest test_module.TestClass

python -m unittest test_module.TestClass.test_method

可加-v打印详细信息

复制代码代码如下:

python -m unittest -v test_module

测试案例自动搜索

unittest支持简单的test discovery. 命令行传入discovery后,框架会自动在当前目录搜索要测试的案例并执行.搜索目录必须是包或者模块.基本使用如下:

复制代码代码如下:

cd project_directory

python -m unittest discover

子选项如下:

-v, –verbose

输出信息的详细级别

-s, –start-directory directory

开始搜索目录 (默认为当前目录)

-p, –pattern pattern

匹配的文件名 (默认为test*.py)

-t, –top-level-directory directory

搜索的顶层目录 (默认为start directory)

创建测试代码

1.方式一

创建子类继承unittest.TestCase,然后重写以下方法

复制代码代码如下:

class WidgetTestCase(unittest.TestCase):

def setUp(self):

pass

def runTest(self):

pass

def tearDown(self):

pass

运行

2.方式二

编写以test开头的方法

复制代码代码如下:

class WidgetTestCase(unittest.TestCase):

def setUp(self):

pass

def test_xx1(self)

def test_xx2(self)

...

def test_xxN(self)

def tearDown(self):

pass

构建测试套件

方式一

复制代码代码如下:

widgetTestSuite = unittest.TestSuite()

widgetTestSuite.addTest(WidgetTestCase('test_default_size'))

widgetTestSuite.addTest(WidgetTestCase('test_resize'))

方式二(推荐)

复制代码代码如下:

def suite():

suite = unittest.TestSuite()

suite.addTest(WidgetTestCase('test_default_size'))

suite.addTest(WidgetTestCase('test_resize'))

return suite

方式三(推荐)

复制代码代码如下:

def suite():

tests = ['test_default_size', 'test_resize']

return unittest.TestSuite(map(WidgetTestCase, tests))

其中还有几种方式不常用。

待测试的类(Widget.py)

?
测试类(Auto.py)

?
测试结果:

?
总结:

1。第一步:先写好测试类

2。第二步:导入unittest模块及测试的类,运用setup()方法做测试前的准备工作,如建立数据库连接,运用teardown()方法做测试后的清除工作,如取消数据库的链接,再对类中的方法逐一做测试。

3。第三步: 写suite()的全局方法,将要测试的方法,一一加入。

测试结果,有几个测试用例就有几个. 最后显示OK,表示通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: