关于unittest测试框架的使用

一直用的是pytest,公司接口自动化用的是unittest,孰胜孰劣不好分析,但是都要学习,适应环境才能得到提高。

Testcase

testcase是测试用例类,所有执行用例的类都要继承unittest.Testcase类:

class test(unittest.TestCase):

每一个继承unittest.Testcase的子类,都是一个测试用例

class test(unittest.TestCase):
    def test_01(self):
        self._testMethodName = '测试01'
        print(self._testMethodName)
    def test_02(self):
        self._testMethodName = '测试02'
        print(self._testMethodName)
if __name__ == '__main__':
    unittest.main()

unittest.main()执行的时候会去执行test’开头的方法,结果如下:

OK
测试01
测试02

参数化

@paramunittest.parametrized(('1', '2'), (3, 4), (5, 6))

参数化是把所需要的参数用元组的形式传参,()里面的内容可以是像上面填写的一样,也可以读取excel进行拼装,但是合适一定是元组形式,setParasemeters是参数化所必须的方法,目的是将参数化的参数传递进来

@paramunittest.parametrized(('1', '2'), (3, 4), (5, 6))
class test(unittest.TestCase):
    def setParasemeters(self, a, b):
        self.a = a
        self.b = b
    def test_01(self):
        print(self.a + self.b)
if __name__ == '__main__':
    unittest.main()

执行结果如下,会按照参数化给定的参数,去执行N遍:

12
7
11

setUp和tearDown

参数化里面的用例每次执行开始和结束都会执行,可以在里面做一些数据处理

@paramunittest.parametrized(('1', '2'), (3, 4), (5, 6))
class test(unittest.TestCase):
    def setParameters(self, a, b):
        self.a = a
        self.b = b

    def setUp(self) -> None:
        print('测试开始')

    def test_01(self):
        # self._testMethodName = '测试01'
        # self._testMethodDoc = self.a
        print(self.a + self.b)

    def tearDown(self) -> None:
        print('测试结束')


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

discover和BeautifulReport

`discover`unittest.defaultTestLoader.discover(start_dir='test1',pattern='*.py', top_level_dir=None)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值