4

我正在尝试为 Selenium 和unittest中的自动化 Web 测试构建一个测试框架,并且我想将我的测试构建成不同的脚本。

因此,我将其组织如下:

文件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运行方式非常特殊,我一定错过了文档希望我如何构建测试的技巧。任何指针?

4

1 回答 1

1

我不是 100% 确定,但在 中main.py,您可能需要:

SeTestSuite = unittest.defaultTestLoader.discover(start_dir='.')

跑步者线应该是(也许):

# If your line didn't work
unittest.TextTestRunner(verbosity=2).run(unittest.TestSuite(SeTestSuite))
于 2012-09-11T17:33:32.983 回答