我在使用 python 中的单元测试运行硒测试的聚合测试套件时遇到问题。
下面的代码在没有调用 testRunner 的情况下从另一个模块执行测试。
当我尝试在调试模式下执行时,在执行类定义行并最终在另一个模块(gmailbutton)中执行测试后不久,控件就被传递给了 pydev_runfiles。
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 测试用例,而不是执行刚刚导入且未添加到测试套件中的 exercise1。我不知道它为什么要执行刚刚导入但未添加到测试套件中的测试。