Skip to main content
 首页 » 编程设计

python之如何: setting a testsuite in python

2024年08月27日27pengyingh

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

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

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()) 

Error: AttributeError: 'module' object has no attribute 'step1'

请您参考如下方法:

您可以使用 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()])