python+selenium 如何做到打开一个窗口,可以多个类的测试用例

这是测试用例要继承的基类,我已经使用了用@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()

这是我要测试的2个类,里面写着测试用例
clipboard.png

clipboard.png

最后用runAllTest.py 跑全部类的测试用例
clipboard.png

但浏览器老是被打开两次,setUpClass和tearDownClass其实也是被执行了2次,我要怎样修改才能做到只打开一次浏览器呢

阅读 7.1k
1 个回答

用单例模式试试,但是如果是多进程单列也无效,需要进程间通信

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
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题