利用unittest执行测试用例的3种方式
利用python进行unittest时,测试用例的加载方式有2种:
一种是通过unittest.main()来启动所需测试的测试模块;
另一种是通过添加到testsuite集合中再加载所有的被测试对象,而testsuite里存放的就是所需要的测试用例;
import unittest
suite = unittest.TestSuite()
suite.addTest(CTestCase("TestCase1"))
================
import unittest
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
suite = unittest.TestSuite(suite1 )
1、通过unittest.main()来执行测试用例:
import unittest class CTestCase(unittest.TestCase): def setUp(self): #测试前需执行的操作 ..... def tearDown(self): #测试用例执行完后所需执行的操作 ..... # 测试用例1 def testCase1(self): #具体的测试脚本 ...... # 测试用例2 def testCase1(self): #具体的测试脚本 ...... if __name__ == "__main__": unittest.main()
2、通过testsuite来执行测试用例:
import unittest class CTestCase(unittest.TestCase): def setUp(self): #测试前需执行的操作 ..... def tearDown(self): #测试用例执行完后所需执行的操作 ..... # 测试用例1 def testCase1(self): #具体的测试脚本 ...... # 测试用例2 def testCase1(self): #具体的测试脚本 ...... if __name__ == "__main__": #构造测试集 suite = unittest.TestSuite() suite.addTest(CTestCase("testCase1")) suite.addTest(CTestCase("testCase2")) #执行测试 runner = unittest.TextTestRunner() runner.run(suite)
3、通过testLoader方式执行测试用例:
import unittest class TestCase1(unittest.TestCase): def setUp(self): #测试前需执行的操作 ..... def tearDown(self): #测试用例执行完后所需执行的操作 ..... # 测试用例1 def testCase1(self): #具体的测试脚本 ...... class TestCase1(unittest.TestCase): def setUp(self): #测试前需执行的操作 ..... def tearDown(self): #测试用例执行完后所需执行的操作 ..... # 测试用例2 def testCase2(self): #具体的测试脚本 ...... if __name__ == "__main__": #此用法可以同时执行多个测试类 suite1 = unittest.TestLoader().loadTestFromTestCase(TestCase1) suite2 = unittest.TestLoader().loadTestFromTestCase(TestCase2) #构造测试集 suite = unittest.TestSuite([suite1,suite2]) runner = unittest.TextTestRunner(verbosity=2) runner.run(suite)
下面对unittest模块下的几个成员进行简单的介绍:
TestCase: 所有测试用例的基本类,给一个测试方法的名称,就会返回一个测试用例实例;
TestSuite: 组织测试用例的实例,支持测试用例的添加和删除,最终传递给TextTestRunner进行测试执行;
TextTestRunner: 进行测试用例执行的实例,其中Text的意思是以文本形式显示测试结果。测试的结果会保存包TextTestResult实例中,包含运行了多少测试用例,成功多少,失败多少等信息;
TestLader: 用来加载TestCase到TestSuite中,其中包含loadTestFrom_()方法,用于将测试用例等加载到TestSuite创建实例;

浙公网安备 33010602011771号