我愿意使用 Selenium 测试我的 Django 应用程序。根据我的阅读,Django 已经涵盖了测试部分并允许您编写自己的测试。
愿意将其与 Selenium 一起使用,这是我的<application>/test.py
:
from some.path.to.my.utilitary.module import TestTools
class FormTestCase(TestCase):
def setUp(self):
self.webui = TestTools()
def test_advanced_settings(self):
self.webui.go_to('home')
self.webui.click('id', 'button-advanced-settings')
self.webui.click('id', 'id_setting_0')
self.webui.click('id', 'id_setting_1')
self.webui.click('id', 'id_setting_2')
self.webui.click('id', 'id_setting_3', submit=True)
def test_zone_selector(self):
self.webui.go_to('home')
self.webui.click('id', 'button-zone-selector')
我编写了一个 Python 类,在其中实现了 Selenium 逻辑 ( TestTools
),因此我可以专注于在我的 Django 应用程序中编写测试代码:
class TestTools():
def __init__(self):
self.driver = webdriver.Firefox(...)
...
# Those methods use self.driver to do things
def click(...):
...
def go_to(...):
...
def quit(...):
...
我注意到我无法覆盖孩子中的__init__
方法TestCase
,所以我把它self.webui = TestTools()
放在了setUp
方法中。但是,它被调用了两次(对于我猜的每种测试方法),因此创建了 2 个 webdrivers。
我想要做的是运行./manage test
,只打开一个浏览器并在其上运行我所有的测试。webdriver 初始化应该在哪里?
谢谢,