unittest setup和tearDown 的用法

夹具:setup和tearDown 自动在每个测试方法之前 以及 之后, 执行额外的指令

 

在有很多个测试用的时候,他们的准备工作可能是重复的。

 

 

 1. 方法级夹具

  在设置了方法级夹具的用例类中,每个测试方法前后,都会执行1次
      setUp 每个测试方法前执行
      tearDown 每次测试方法后执行

import unittest

from selenium import webdriver


class MyTestCase(unittest.TestCase):

    def setUp(self) -> None:
        # global driver
        self.driver = webdriver.Chrome()

    def tearDown(self) -> None:
        self.driver.quit()

    def test_baidu(self):
        self.driver.get("https://www.baidu.com/")

    def test_tengxun(self):
        self.driver.get("https://www.qq.com/")

    def test_puls(self):
        c = 1 + 3
        print(c)

 

2. 类级夹具

在设置了类级夹具的用例类中,每个测试类前后,都会执行1次
  setUpClass 每个测试类前执行
  tearDownClass 每次测试类后执行

   此处 @classmethod 不可省
import unittest

from selenium import webdriver


class MyTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        # global driver
        cls.driver = webdriver.Chrome()
    @classmethod
    def tearDownClass(cls) -> None:
        cls.driver.quit()

    def test_baidu(cls):
        cls.driver.get("https://www.baidu.com/")

    def test_tengxun(cls):
        cls.driver.get("https://www.qq.com/")

    def test_puls(cls):
        c = 1 + 3
        print(c)

 

3.模块级夹具

在设置了模块级夹具的用例文件中,开始和结束,都会执行1次
  setUpModule 本模块所有用例之前执行
  tearDownModule 本模块所有用例之后执行

def setUpModule() -> None:
    global driver
    driver = webdriver.Chrome()


def tearDownModule() -> None:
    driver.quit()


class MyTestCase(unittest.TestCase):
    def test_baidu(self):
        driver.get("https://www.baidu.com/")

    def test_tengxun(self):
        driver.get("https://www.qq.com/")

    def test_puls(self):
        c = 1 + 3
        print(c)


class MyTestCase2(unittest.TestCase):
    def test_baidu(self):
        driver.get("https://www.baidu.com/")

    def test_tengxun(self):
        driver.get("https://www.qq.com/")

    def test_puls(self):
        c = 1 + 3
        print(c)

 

posted @ 2021-05-27 14:10  Amanda520yl  阅读(277)  评论(0)    收藏  举报