如何:在python中设置测试套件

时间:2014-06-24 13:39:53

标签: python unit-testing testing python-unittest

我知道这是一个有点愚蠢的问题,但是使用下面提供的链接,我仍然无法创建测试套件。

我现在有两个测试用例(会有更多),假设它的名称有:

class step1(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()

    def test_case1(self):
[...]

if __name__ == "__main__":
     unittest.main()

class step2(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()

    def test_case2(self):
[...]

if __name__ == "__main__":
     unittest.main()

我想创建其他文件.py文件:testsuite,它可以聚合test_case1,test_case2,test_case3 ......

我尝试过类似的东西,例如:

import unittest
import step1
import step2


def suite():
    test_suite = unittest.TestSuite()
    test_suite.addTest(unittest.step1(test_case1))
    test_suite.addTest(unittest.step2(test_case2))

if __name__ == "__main__":
    result = unittest.TextTestRunner(verbosity=2).run(suite())
    sys.exit(not result.wasSuccessful())
  

错误:AttributeError:'module'对象没有属性'step1'

1 个答案:

答案 0 :(得分:3)

您可以使用addTest()并将TestCase实例传递给它,您也会错过return声明:

def suite():
    test_suite = unittest.TestSuite()
    test_suite.addTest(step1())
    test_suite.addTest(step2())
    return test_suite

或使用addTests()一行:

test_suite.addTests([step1(), step2()])