/// <summary> /// 创建执行案例 /// </summary> /// <param name="sheet">sheet页</param> /// <param name="sceneID">场景ID</param> private static void insertRunCase(QCTESTEntities QC_DB, ISheet sheet, int sceneID) { int ID = Convert.ToInt32(sheet.SheetName); M_testCase mtc = QC_DB.M_testCase.Where(t => t.ID == ID).FirstOrDefault(); if (mtc == null) { return; } System.Collections.IEnumerator rows = sheet.GetRowEnumerator(); //读取下一行 rows.MoveNext();//如果没有要处理下 IRow headRow = (IRow)rows.Current; Dictionary <string, string> data = new Dictionary <string, string>(); List <string> keys = new List <string>(); //首先获得参数列表 for (int i = 1; i < headRow.LastCellNum; i++) { ICell cell = headRow.GetCell(i); if (cell == null || cell.ToString() == "") { break; //有空数据直接退出 } string key = cell.ToString(); data.Add(key, ""); keys.Add(key); } //逐行转化案例 while (rows.MoveNext()) { IRow row = (IRow)rows.Current; if (row.GetCell(0) == null || row.GetCell(0).StringCellValue.Trim() == "") { break; //案例名字没有退出 } string caseName = row.GetCell(0).StringCellValue; if (caseName.Length > 50) { caseName = caseName.Substring(0, 50); } XElement cloneXML = XElement.Parse(mtc.testXML); cloneXML.SetAttributeValue("name", caseName);//name for (int i = 1; i < keys.Count; i++) { ICell cell = row.GetCell(i); string value = ""; if (cell != null) { //cell = eva.EvaluateInCell(cell); cell.SetCellType(CellType.String); value = cell.StringCellValue; } data[keys[i]] = value; } //获得最终案例 cloneXML.getRunScript(data); //放入数据库 M_runTestCase mrtc = new M_runTestCase(); mrtc.sceneID = sceneID; mrtc.testXML = cloneXML.ToString(); mrtc.name = caseName; QC_DB.M_runTestCase.Add(mrtc); } }
private static List <T> getRunScript <T>(M_testCase mtc, ISheet sheet, int sceneID = 0) where T : class { List <T> result = new List <T>(); int ID = Convert.ToInt32(sheet.SheetName); System.Collections.IEnumerator rows = sheet.GetRowEnumerator(); //读取下一行 rows.MoveNext();//如果没有要处理下 IRow headRow = (IRow)rows.Current; Dictionary <string, string> data = new Dictionary <string, string>(); List <string> keys = new List <string>(); //首先获得参数列表 for (int i = 1; i < headRow.LastCellNum; i++) { ICell cell = headRow.GetCell(i); if (cell == null || cell.ToString() == "") { break; //有空数据直接退出 } string key = cell.ToString(); data.Add(key, ""); keys.Add(key); } //逐行转化案例 while (rows.MoveNext()) { IRow row = (IRow)rows.Current; if (row.GetCell(0) == null || row.GetCell(0).StringCellValue.Trim() == "") { break; //案例名字没有退出 } string caseName = row.GetCell(0).StringCellValue; if (caseName.Length > 50) { caseName = caseName.Substring(0, 50); } XElement cloneXML = XElement.Parse(mtc.testXML); cloneXML.SetAttributeValue("name", caseName);//name for (int i = 0; i < keys.Count; i++) { ICell cell = row.GetCell(i + 1); string value = ""; if (cell != null) { //cell = eva.EvaluateInCell(cell); cell.SetCellType(CellType.String); value = cell.StringCellValue; } data[keys[i]] = value; } //获得最终案例 cloneXML.getRunScript(data); if (typeof(T) == typeof(M_runTestCase)) { M_runTestCase mrtc = new M_runTestCase(); mrtc.sceneID = sceneID; mrtc.testXML = cloneXML.ToString(); mrtc.name = caseName; result.Add(mrtc as T); } else if (typeof(T) == typeof(tmp_TaskScript)) { tmp_TaskScript mrtc = new tmp_TaskScript(); mrtc.title = caseName; mrtc.script = cloneXML.ToString(); result.Add(mrtc as T); } } return(result); }