概念:CSV是一种以逗号做分割的表格格式; 后缀 .csv
1. 创建CSV文件
2. 编写CSV读取模块函数
3. 单元测试-引用CSV读取函数
4. 执行
1. 导包 import csv
2. 打开csv文件
with open("../Data/sjx.csv","r",encoding="utf-8") as f:
lines=csv.reader(f)
(1)三角形判断类:sjx.py
class Sjx():
def sjx(self,a,b,c):
# 判断是否为三角形
if a+b>c and a+c>b and b+c>a:
# 判断是否为等边三角形
if a==b and b==c:
return "等边三角形"
elif a==b or a==c or b==c:
return "等腰三角形"
else:
return "普通三角形"
else:
return "不是三角形"
(2)csv数据:sjx.csv
2,2,2,等边三角形
2,2,3,等腰三角形
2,3,4,普通三角形
3,2,1,不是三角形
(3)读取csv数据类:read_csv.py
import csv
class Read_Csv():
def readCsv(self):
#打开csv文件
with open("../data/sjx.csv","r",encoding='utf-8') as f:
datas=csv.reader(f)
#新建空列表,把单行返回的列表添加成整体的列表
lines=[]
for data in datas:
#将csv数据添加到列表中
lines.append(data)
return lines
if __name__ == '__main__':
print(Read_Csv().readCsv())
(4)csv的测试类:test_csv.py
#导入unittest、三角形函数、csv读取参数类
import unittest
from Unittest.code.sjx import Sjx
from Unittest.read_data.read_csv import Read_Csv
#实例化三角形
sjxClass=Sjx()
#实例化读取csv工具
readCsvClass=Read_Csv()
class Test_Csv(unittest.TestCase):
#测试三角形函数程序
def test1(self):
for i in range(len(readCsvClass.readCsv())):
#获取数组数据
result=sjxClass.sjx(int(readCsvClass.readCsv()[i][0]),
int(readCsvClass.readCsv()[i][1]),
int(readCsvClass.readCsv()[i][2]))
self.assertEqual(result,readCsvClass.readCsv()[i][3])
print(readCsvClass.readCsv()[i][0],
readCsvClass.readCsv()[i][1],
readCsvClass.readCsv()[i][2],
readCsvClass.readCsv()[i][3],
"-->验证通过")
if __name__ == '__main__':
unittest.main()
运行结果:
Launching Nosetest with arguments D:\Program Files\PyCharm\PyCharm 2017.2.3\helpers\pycharm\_jb_nosetest_runner.py test_csv.py:Test_Csv.test1 in E:\pythonProject\Unittest\unittest
2 2 2 等边三角形 -->验证通过
.
----------------------------------------------------------------------
Ran 1 test in 0.006s
2 2 3 等腰三角形 -->验证通过
OK
2 3 4 普通三角形 -->验证通过
3 2 1 不是三角形 -->验证通过