Python + selenium之unitest(2)

unittest单元测试框架中重要的概念:

1.Test Case

 一个Test Case实例就是一个测试用例。在一个完整的测试流程中,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run)以及测试后测试环境的还原(tearDown)。单元测试(unittest)本质就是:一个测试用例就是一个完整的测试单元,通过运行这个测试单元,可以对某个功能模块进行验证。

2.Test Suite

一个功能的验证往往需要多个测试用例,可以多个测试用例集合在一块执行,于是就产生了测试套件TestSuite的概念,Test Suite用来组装单个测试用例,可以通过addTest加载TestCase加到TestSuite中从而F返回一个TestSuite实例。

3.Test Runner 

  测试的执行也是单元测试中非常重要的一个概念。一般单元测试框架中都会提供丰富的执行策略和执行结果。在unittest单元测试框架中,通过TextTestRunner类提供的run()方法来执行test suite/test case .

test runner()可以使用图形界面,文本界面或者返回一个特殊的值等方式来表示测试执行的结果。

4.Test Fixture

对于一个测试用例环境的搭建和销毁,就是一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。比如在一个测试用例中需要访问数据库,那么就可以在setUp()中通过建立数据库连接来进行初始化,在tearDown()中清空数据库产生的数据,然后关闭连接。

注意:tearDown的过程很重要,要为下一个test case留下一个干净的环境。

 1 from calculator import Count
 2 import unittest
 3 
 4 
 5 class TestCount (unittest.TestCase):
 6     def setUp(self):
 7         print("test start")
 8 
 9     def test_add(self):
10         j = Count (2, 4)
11         self.assertEqual (j.add (), 6)
12 
13     def test_add2(self):
14         i = Count (2,9)
15         self.assertEqual (i.add (), 11)
16 
17     def tearDown(self):
18         print("test end")
19 
20 
21 if __name__ == '__main__':
22     # unittest.main ()
23     suite = unittest.TestSuite()
24     suite.addTest(TestCount('test_add2'))
25     # suite.addTest (TestCount ('test_add'))
26     runner = unittest.TextTestRunner()
27     runner.run(suite)

从上可以看出:setUp和tearDown作用于测试用例的开始与结束。

 

posted @ 2017-09-19 11:21  木棉花的漂泊  阅读(227)  评论(0编辑  收藏  举报