Python で単体テストを使用してセレン テストの集約テスト スイートを実行する際に問題が発生しています。
以下のコードは、testRunner を呼び出さずに別のモジュールからテストを実行しています。
デバッグモードで実行してみると、クラス定義行を実行した直後にコントロールがpydev_runfilesに渡され、最終的に他のモジュール(gmailbutton)でテストが実行されました。
import unittest
from selenium import webdriver
from gmailbutton import gmailButton
class runner():
def runner1(self):
suite = unittest.TestSuite()
suite.addTest(gmailButton)
return suite
ドキュメント(http://docs.python.org/2/library/unittest.html)によると、上記のコードはテストケースをスイートに追加するだけで、テストは実行されているはずです
unittest.TextTestRunner(verbosity=2).run(suite)
ここでは起こっていません。
gmailButton のテストコードはこちら
import unittest
from selenium import webdriver
class gmailButton(unittest.TestCase):
global browser
def test_gmailButton(self):
browser = webdriver.Firefox()
try:
browser.get("http://www.gmail.com")
browser.find_element_by_id("Email").send_keys("abcd")
browser.find_element_by_id("Passwd").send_keys("123445")
browser.find_element_by_id("signIn").click()
except Exception as e:
raise
print e
finally:
browser.close()
アップデート:
これは、Eclipseから実行している正確なコードです。
import unittest
from selenium import webdriver
from gmailbutton import gmailButton
from pyUnitExercise import exercise1
class runner():
def runner1(self):
suite = unittest.TestSuite()
suite.addTest(gmailButton)
return suite
if __name__ == "__main__":
unittest.TextTestRunner(verbosity=2).run(runner.suite)
このコードからの私の期待は、gmailButton テスト ケースを実行することであり、インポートされたばかりでテスト スイートに追加されていない演習 1 ではありません。インポートされたばかりでテストスイートに追加されていないテストを実行する理由がわかりません。