python 中使用unittest 加载测试用例的方式

前提

测试模块名为 Testcase.py
其中含有两个测试类 Testadd 和Testsub
每个测试类中含有各自的正常测试case 和异常测试case
测试代码如下:

class Testadd(unittest.TestCase):#加法测试case
    def setUp(self):
        print('add ,begin')
    def tearDown(self):
        print('add,end')
    def test_add_normal(self):#正确的加法用例
        print('test_add_normal')
    def test_add_err(self):#错误的假发用例
        print('test_add_err')

class Testsub(unittest.TestCase):#减法测试case
    def setUp(self):
        print('sub ,begin')
    def tearDown(self):
        print('sub,end')
    def test_sub_normal(self):  # 正确的减法用例
        print('test_sub_normal')
    def test_sub_err(self):  # 错误的减法用例
        print('test_sub_normal')

来了来了

执行测试用例通常用到以下3种测试方式
1.main 方法,直接在测试模块Testcase.py下加main方法并使用uinttest.main()进行测试
执行代码:

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

main 方法很方便,但是我我们通常会使用测试代码和执行代码分离的形式来执行测试用例,以下两种执行测试用例的方式就是使用用例和执行分开的模式
那么我们可以先创建一个run.py模块来专门做执行case 的操作,下面两种方式均是在run.py模块中进行的。
2.testsuit方式
创建suit实例并构造测试用例集
suit.addTest(Testadd(‘test_add_normal’))
Testadd 为class名 ;test_add_normal是class中的方法
因此 需要用 from 模块 import class1,class2的形式引入 class

import unittest
from TestRunner.HTMLTestRunner import HTMLTestRunner
from calss_unittest.Testcase import Testadd,Testsub

suit=unittest.TestSuite()
suit.addTest(Testadd('test_add_normal'))
suit.addTest(Testadd('test_add_normal'))
suit.addTest(Testsub('test_sub_normal'))
suit.addTest(Testsub('test_sub_normal'))

with(open('Testcase.html','wb')) as fp:
    runner=HTMLTestRunner(stream=fp, verbosity=2, title="TestcaseBysuit", description="通过suit加载测试用例")
    runner.run(suit)

3.testloader方式
使用loader 加载测试用例 分为loaderTestsFromCase和loaderTestsFromModule两种情况,两种情况引入包的方式也有差别,这个需要注意哦!
a)loaderTestsFromCase字面意思 从测试类中加载测试用例 ,测试类中的所有方法都会执行的

import unittest
from TestRunner.HTMLTestRunner import HTMLTestRunner

from calss_unittest.Testcase import Testadd,Testsub

suit=unittest.TestSuite()
loader=unittest.TestLoader()
#loadTestsFromTestCase 按模块中的class名执行
suit.addTest(loader.loadTestsFromTestCase(Testadd))
suit.addTest(loader.loadTestsFromTestCase(Testsub))


with(open('Testcase.html','wb')) as fp:
    runner=HTMLTestRunner(stream=fp, verbosity=2, title="TestcaseBysuit", description="通过suit加载测试用例")
    runner.run(suit)

b)loaderTestsFromModule 从测试模块中加载测试用例,测试模块中的所有测试类都会执行

import unittest
from TestRunner.HTMLTestRunner import HTMLTestRunner
from calss_unittest import Testcase


suit=unittest.TestSuite()
loader=unittest.TestLoader()

#loadTestsFromTestCase 按模块名执行
suit.addTest(loader.loadTestsFromModule(Testcase))

with(open('Testcase.html','wb')) as fp:
    runner=HTMLTestRunner(stream=fp, verbosity=2, title="TestcaseBysuit", description="通过suit加载测试用例")
    runner.run(suit)

end~
脑袋不好使,记录以下哈

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值