unittest运行时指定运行顺序
背景:在unittest中运行单元测试,是没有顺序的,如果要指定运行顺序有两种方式
方法1:在运行方法后,加上数字test_0 、test_1 这样也会指定顺序
方法2:使用不同的字母表示,因为在单元测试框架中会对比每个运行方法名的ascii码,ascii码越大执行越靠后
案例:
测试方法
# coding=utf-8
class Calc(object):
def add(self, x, y, *d):
# 加法计算
result = x + y
for i in d:
print(i)
result += i
return result
def sub(self, x, y, *d):
# 减法计算
result = x - y
for i in d:
result -= i
return result
@classmethod
def mul(cls, x, y, *d):
# 乘法计算
result = x * y
for i in d:
result *= i
return result
@staticmethod
def div(x, y, *d):
# 除法计算
if y != 0:
result = x / y
else:
raise ZeroDivisionError
return -1
for i in d:
if i != 0:
result /= i
else:
raise ZeroDivisionError
return -1
return result
if __name__=="__main__":
c=Calc()
print (c.add(1,2,3,4))
运行单元测试方法
import unittest
from Calc import Calc
class MyTest(unittest.TestCase):
@classmethod
def setUpClass(self):
print (u"单元测试前,创建Calc类的实例")
self.c = Calc()
def test_3div(self):
print ("run div()")
self.assertEqual(Calc.div(8, 2, 4), 1, 'test div fail')
# 具体的测试用例,一定要以test开头,执行顺序按照字母顺序开头
def test_0add(self):
print ("run add()")
self.assertEqual(self.c.add(1, 2, 12), 15, 'test add fail')
def test_1sub(self):
print ("run sub()")
self.assertEqual(self.c.sub(2, 1, 3), -2, 'test sub fail')
def test_2mul(self):
print ("run mul()")
self.assertEqual(Calc.mul(2, 3, 5), 30, 'test mul fail')
def test_runb(self):
print("run b")
def test_runa(self):
print ("run a")
if __name__ == '__main__':
unittest.main()# 启动单元测试
执行结果
运行的数字排序、在相同的方法名时,对比不同字母的ascii码,a是97 b是98

|
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 微信号:18582559217 |

浙公网安备 33010602011771号