本人的很烂的C#单元测试的数据驱动的方法
第一种:使用visual studio中的unit test。数据源:access。步骤:
1. 添加数据源(主菜单-->数据-->添加数据源)
2. 连接字符串(可参考msdn)
3. 使用TestContext.DataRow["字段名"]取相应自段的数据。
第二种:直接编程
using System;using System.Collections.Generic;
using System.Text;
using System.IO;
using Appconsole;
namespace testIO
{
class testIOPro
{
static void Main(string[] args)
{
//==============================================================================================
//===从数据源(文件C:\DS.csv)取测试数据
//==============================================================================================
string[] s = System.IO.File.ReadAllLines("C:\\DS.csv"); //DS.csv中的数据以数组s中
// tcno:测试用例编号
// input1:输入参数1
// input2:输入参数2
string[] tcno=new string;
string[] input1 = new string;
string[] input2 = new string;
// 分割字符串,获取用例编号和参数
for (int i = 0; i < s.Length; ++i)
{
string[] t = s.Split(',');
tcno = t;
input1 = t;
input2 = t;
}
//==============================================================================================
//===执行用例,并导出结果
//===被测方法:public string consoled(string ss1, string ss2)
//==被测方法属于:
// namespace Appconsole
// public class appconsole
//==============================================================================================
appconsole aa = new appconsole();
bool pass = false;//用例成功状态初始化
int passCount=0,failedCount=0;//成功和失败数统计初始化
for (int i = 0; i < s.Length; ++i)
{
string expert = input1 + input2; //期望结果
DateTime starttime = DateTime.Now;//开始时间
string actual = aa.consoled(input1, input2);//调用被测方法
DateTime endtime = DateTime.Now; //结束时间
TimeSpan DT = (endtime-starttime);//用例执行时间段
//结果比对
if (expert == actual) pass = true;
else pass = false;
//成功失败计数
if (pass == true) ++passCount;
else ++failedCount;
//输入用例执行情况
File.AppendAllText("C:\\output.csv", tcno + ',' + expert + ',' + actual + ',' + pass + ',' + DT + '\n');
}
//输入成功失败数
File.AppendAllText("C:\\output.csv", "成功数:" + passCount + '\n' + "失败数:" + failedCount);
}
}
}
页:
[1]