gpt4 book ai didi

python - unittest.TestCase 的子类的子类,具有不同的 setUpClass 类方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:07 25 4
gpt4 key购买 nike

我目前有一个 unittest.TestCase 的子类,我用它来运行我的 Selenium 测试:

class FunctionalTest(unittest.TestCase):

@classmethod
def setUpClass(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(1)

@classmethod
def tearDownClass(self):
self.browser.close()

def method1(self):
#some code here

def method2(self):
#some code here

我想子类化这个类(FunctionalTest),我想更改setUpClass方法以禁用firefox浏览器的javascript,但仍然能够使用FunctionalTest的所有其他方法:

    @classmethod
def setUpClass(self):
profile = webdriver.FirefoxProfile()
profile.set_preference("javascript.enabled", False);
self.browser = webdriver.Firefox(profile)
self.browser.implicitly_wait(1)

像下面这样的子类化不起作用:

FunctionalTestNoJS(FunctionalTest):
@classmethod
def setUpClass(self):
profile = webdriver.FirefoxProfile()
profile.set_preference("javascript.enabled", False);
self.browser = webdriver.Firefox(profile)
self.browser.implicitly_wait(1)

关于如何有效地解决这个问题有什么想法吗?

最佳答案

这对我有用,我不确定使用 @classmethod 的原因,但是你开始了..

import unittest
from selenium import webdriver
from datetime import datetime


class FunctionalTest(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(1)
self.browser.maximize_window()

def tearDown(self):
self.browser.quit()

def test_method1(self):
self.browser.get("http://javatester.org/javascript.html")
now = datetime.now().strftime('%Y-%m-%d_%H-%M-%S-%f')
self.browser.get_screenshot_as_file('%s_%s.png' % (self.__class__.__name__, now))


class FunctionalTestNoJS(FunctionalTest):
def setUp(self):
profile = webdriver.FirefoxProfile()
profile.set_preference("javascript.enabled", False);
self.browser = webdriver.Firefox(profile)
self.browser.implicitly_wait(1)
self.browser.maximize_window()

if __name__ == '__main__':
unittest.main()

关于python - unittest.TestCase 的子类的子类,具有不同的 setUpClass 类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25731179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com