我正在尝试在selenium
和unittest
中构建自动化网络测试的测试框架,我想将测试结构化为不同的脚本。所以我把它组织成如下:
base.py - 目前,这将包含用于设置会话的基本selenium测试用例类。
import unittest
from selenium import webdriver
# Base Selenium Test class from which all test cases inherit.
class BaseSeleniumTest(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Firefox()
def tearDown(self):
self.browser.close()
main.py - 我希望这是整个测试套件,从中运行所有单独的测试。
import unittest
import test_example
if __name__ == "__main__":
SeTestSuite = test_example.TitleSpelling()
unittest.TextTestRunner(verbosity=2).run(SeTestSuite)
test_example.py - 一个示例测试用例,也可以让它们自行运行。
from base import BaseSeleniumTest
# Test the spelling of the title
class TitleSpelling(BaseSeleniumTest):
def test_a(self):
self.assertTrue(False)
def test_b(self):
self.assertTrue(True)
问题是当我运行main.py时出现以下错误:
Traceback (most recent call last):
File "H:\Python\testframework\main.py", line 5, in <module>
SeTestSuite = test_example.TitleSpelling()
File "C:\Python27\lib\unittest\case.py", line 191, in __init__
(self.__class__, methodName))
ValueError: no such test method in <class 'test_example.TitleSpelling'>: runTest
我怀疑这是由于unittest
运行的非常特殊的方式,我一定错过了关于文档如何期望我构建测试的技巧。有什么指针吗?
答案 0 :(得分:1)
不是100%肯定,但在main.py
中,您可能需要:
SeTestSuite = unittest.defaultTestLoader.discover(start_dir='.')
跑垒员应该是(也许):
# if your line didn't work
unittest.TextTestRunner(verbosity=2).run(unittest.TestSuite(SeTestSuite))