在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ python+selenium 如何做到打開一個(gè)窗口,可以多個(gè)類的測(cè)試用例

python+selenium 如何做到打開一個(gè)窗口,可以多個(gè)類的測(cè)試用例

這是測(cè)試用例要繼承的基類,我已經(jīng)使用了用@classmethod修飾的setUpClass和tearDownClass

from selenium import webdriver
from driver import browser
import unittest

class myTest(unittest.TestCase):
    # def setUp(self):
    #     print 'start'
    #     # self.driver = browser()
    #
    # def tearDown(self):
    #     print 'end'
    #     # self.driver.quit()

    @classmethod
    def setUpClass(cls):
        print 'start'
        cls.driver = webdriver.Chrome()

    @classmethod
    def tearDownClass(cls):
        print 'end'
        cls.driver.quit()

這是我要測(cè)試的2個(gè)類,里面寫著測(cè)試用例
clipboard.png

clipboard.png

最后用runAllTest.py 跑全部類的測(cè)試用例
clipboard.png

但瀏覽器老是被打開兩次,setUpClass和tearDownClass其實(shí)也是被執(zhí)行了2次,我要怎樣修改才能做到只打開一次瀏覽器呢

回答
編輯回答
舊螢火

用單例模式試試,但是如果是多進(jìn)程單列也無(wú)效,需要進(jìn)程間通信

class myTest(unittest.TestCase):
    # def setUp(self):
    #     print 'start'
    #     # self.driver = browser()
    #
    # def tearDown(self):
    #     print 'end'
    #     # self.driver.quit()
    
    driver = None
    
    @classmethod
    def setUpClass(cls):
        print 'start'
        if cls.driver is None:
            cls.driver = webdriver.Chrome()

    @classmethod
    def tearDownClass(cls):
        print 'end'
        if cls.driver:
            cls.driver.quit()
        cls.driver = None
2018年6月22日 05:47