前提
测试模块名为 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~
脑袋不好使,记录以下哈