unittest之装饰器

          前面讲到 unittest 里面 setUp 可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,
这样就会浪费很多时间。于是就想是不是可以只打开一次浏览器,执行完用例再关闭呢?这就需要用到装饰器(@classmethod)来解决了。

1、装饰器

1).用 setUp 与 setUpClass 区别
setup():每个测试 case 运行前运行
teardown():每个测试 case 运行完后执行
setUpClass():必须使用@classmethod 装饰器,所有 case 运行前只运行一次
tearDownClass():必须使用@classmethod 装饰器,所有 case 运行完后只运行一次
2).@是修饰符,classmethod 是 python 里的类方法

2、执行顺序

1).用类方法写几个简单 case

# coding:utf-8
import unittest
import time
class Test(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print "start!"
    @classmethod
    def tearDownClass(cls):
        time.sleep(1)
        print "end!"
    def test01(self):
        print "执行测试用例 01"

    def test03(self):
        print "执行测试用例 03"
    def test02(self):
        print "执行测试用例 02"
    def addtest(self):
        print "add 方法"
if __name__ == "__main__":
unittest.main()                        

 2).从执行结果可以看出,前置和后置在执行用例前只执行了一次。

原文地址:https://www.cnblogs.com/101718qiong/p/7998245.html