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')
Selenium ロジック ( TestTools
) を実装した Python クラスを作成したので、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
に入れました。ただし、(私が推測する各テスト メソッドに対して) 2 回呼び出されるため、2 つの Web ドライバーが作成されます。self.webui = TestTools()
setUp
私がやりたいことは、 を実行./manage test
し、ブラウザを 1 つだけ開き、その上ですべてのテストを実行することです。webdriver の初期化はどこで行うべきですか?
ありがとう、