1.业务模块
"""文件名:calc.py"""
class Calc1 :
def __init__ ( self, a, b) :
self. a = a
self. b = b
def multiply ( self) :
x = self. a * self. b
return x
def division ( self) :
y = round ( self. a / self. b, 2 )
return y
if __name__ == '__main__' :
print ( Calc1( 3 , 7 ) . multiply( ) )
print ( Calc1( 3 , 7 ) . division( ) )
2.单元测试
"""文件名:testdiv.py"""
import unittest
from calc import *
class TestDiv ( unittest. TestCase) :
@classmethod
def setUpClass ( cls) :
print ( "所有用例的准备工作" )
def setUp ( self) :
print ( '~' * 10 , '测试开始' , '~' * 10 )
def tearDown ( self) :
print ( '-' * 10 , '测试结束' , '-' * 10 )
@classmethod
def tearDownClass ( cls) :
print ( "所有用例的收尾工作" )
def test_div1 ( self) :
print ( "1.2.乘法验证" )
self. assertEqual( 30 , Calc1( 7 , 5 ) . multiply( ) , msg= "testdiv乘法验证错误" )
def test_div2 ( self) :
print ( "2.2.除法验证" )
self. assertEqual( 1.4 , Calc1( 7 , 5 ) . division( ) , msg= "##" )
if __name__ == '__main__' :
unittest. main( )
"""文件名:testmul.py"""
import unittest
from calc import *
class TestMul ( unittest. TestCase) :
def setUp ( self) :
print ( '~' * 10 , '测试开始' , '~' * 10 )
def tearDown ( self) :
print ( '-' * 10 , '测试结束' , '-' * 10 )
def test_mul1 ( self) :
print ( "1.1.乘法验证" )
self. assertEqual( 100 , Calc1( 25 , 4 ) . multiply( ) , msg= "##" )
def test_mul2 ( self) :
print ( "2.1.除法验证" )
self. assertEqual( 6.0 , Calc1( 25 , 4 ) . division( ) , msg= "testmul除法验证错误" )
if __name__ == '__main__' :
unittest. main( )
3.测试执行器
"""文件名:runtest1.py"""
"""【目的】合并多个类--->测试套"""
import unittest
from testmul import TestMul
from testdiv import TestDiv
import HTMLTestRunner
if __name__ == '__main__' :
"""【1.不同的类写进各自的测试套】"""
testsuite_1 = unittest. TestLoader( ) . loadTestsFromTestCase( TestMul)
testsuite_2 = unittest. TestLoader( ) . loadTestsFromTestCase( TestDiv)
"""【2.多个测试套合并成一个大的测试套】"""
testsuite_all = unittest. TestSuite( [ testsuite_1, testsuite_2] )
"""【3.测试报告的名称】 写入二进制"""
html1 = open ( 'testreport.html' , 'wb' )
htmlrunner = HTMLTestRunner. HTMLTestRunner( stream= html1, title= '乘除法测试报告' )
"""【4.执行器执行测试套】"""
htmlrunner. run( testsuite_all)
html1. close( )
"""文件名:runtest2.py"""
"""【目的】合并指定目录下的多个模块文件--->测试套"""
import unittest
if __name__ == '__main__' :
"""【1】声明目录的位置"""
test_dir = "./"
"""【2】查找目录下以'test'开头的模块文件"""
test_file = "test*.py"
"""【3】合并多个模块文件为测试套"""
test_suite = unittest. defaultTestLoader. discover( test_dir, pattern= test_file)
"""【4】执行器执行测试套"""
test_run1 = unittest. TextTestRunner( )
test_run1. run( test_suite)
运行执行器
1 .菜单栏:运行---> 运行
2 .终端命令行:
python 文件.py
python3 文件.py
测试报告
模板
import unittest
class TestSample ( unittest. TestCase) :
def setUp ( self) :
print ( "~~~~~~~开始测试~~~~~~~" )
def tearDown ( self) :
print ( "------测试结束------" )
def test_1 ( self) :
self. assert ( "预期值" , "类(参数1,参数2).方法()" , msg= "失败时显示" )
def test_2 ( self) :
self. assert ( "预期值" , "类(参数1,参数2).方法()" , msg= "失败时显示" )
if __name__ == '__main__' :
unittest. main( )