compute.py #该文件用来存被测函数#encoding=UTF-8 import random import re def add(a,b):c=int(a)d=int(b)print c+dreturn c+ddef sub(a,b):c=int(a)d=int(b)print c-dreturn c-ddef mul(a,b,c):d=int(a)e=int(b)f=int(c)return d*e*fdef abs_value(a):return abs(int(a))def random_value():return random.randint(1,1000)def assert_value(actual_value,expected_value):expected_value = str(expected_value).strip()actual_value = str(actual_value)if re.search(r"\\|\*|\.|\?",expected_value):#看预期结果是否是个正则表达式,看里面是否含有.*?斜杠中的任意一个 #.匹配除换行符之外的任意1个字符 .不能匹配回车; #\d 匹配中任意一个数字,范围为[0-9] #*(星号) 匹配前一个字符0次1次或多次 #?匹配前一个字符0次或1次 #竖线表示或,都表示第1个位置if re.match(expected_value,actual_value):return Trueelse:return Falseif actual_value==expected_value:return Trueelse:return False #------------------------------------------------------------------------------------------------- data.txt #将该txt文件存于电脑E盘根目录下 add,1,2,3 sub,2,1,1 mul,1,2,3,6 abs_value,-1,1 random_value,\d+ #-------------------------------------------------------------------------------------------------- test.py #要运行的程序 #encoding=UTF-8 from compute import * test_case_num = 0 success_test_case =0 faile_test_case = 0 with open("e:\\data2.txt") as f:for line in f:test_case_num+=1func_name = line.split(",")[0]value = ",".join(line.split(",")[1:-1])expect_value = line.split(",")[-1]s= func_name+"("+value+")"actual_result=eval(s)if assert_value(actual_result,expect_value):success_test_case+=1else:faile_test_case +=1print "total %s test cases runned" % test_case_num print "total %s succeeded test cases runned" % success_test_case print "total %s failed test cases runned" % faile_test_case