拆分测试用例

calculator.py

class Count:    def __init__(self,a,b):        self.a = int(a)        self.b = int(b)    #计算加法    def add(self):        return self.a + self.b    #计算减法    def sub(self):        return self.a - self.b

runtest.py

import unittest# 加载测试文件import testaddimport testsub# 构造测试集suite = unittest.TestSuite()suite.addTest(testadd.TestAdd("test_add"))suite.addTest(testadd.TestAdd("test_add2"))suite.addTest(testsub.TestSub("test_sub"))suite.addTest(testsub.TestSub("test_sub2"))if __name__ == ‘__main__‘:    # 执行测试    runner = unittest.TextTestRunner()    runner.run(suite)"""这样的拆分带来了好处,可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,整体结构更加清晰。这样的设计看上去很完美,但依然没有解决添加用例的问题,当用例达到成百上千条时,在runtest.py文件中通过addTest()添加/删除测试用例就变得非常麻烦,那么有没有方法让unitest单元测试框架自动识别测试用例呢?答案是肯定的,TestLoader类中提供的discover()方法可以解决这个问题。"""

testadd.py

from calculator import Countimport unittestclass TestAdd(unittest.TestCase):    def setUp(self):        print("test case start")    def tearDown(self):        print("test case end")    def test_add(self):        j = Count(2,3)        self.assertEqual(j.add(),5)    def test_add2(self):        j = Count(41, 76)        self.assertEqual(j.add(), 117)if __name__ == ‘__main__‘:    unittest.main()

testsub.py

from calculator import Countimport unittestclass TestSub(unittest.TestCase):    def setUp(self):        print("test case start")    def tearDown(self):        print("test case end")    def test_sub(self):        j = Count(2, 3)        self.assertEqual(j.sub(),-1)    def test_sub2(self):        j = Count(71, 46)        self.assertEqual(j.sub(),25)if __name__ == ‘__main__‘:    unittest.main()

 

相关推荐