예제 #1
0
        public static string GetValueByKey(string key, string testDataType, bool ignoreCase = true)
        {
            if (key == testDataType)
            {
                return(key);
            }
            TestDataType type = Utility.ParseEnum <TestDataType>(testDataType);

            if (type == TestDataType.Share)
            {
                return(SharedData.Where(f => f.Key.EqualsText(key, ignoreCase)).Select(f => f.Value).FirstOrDefault());
            }
            else if (type == TestDataType.TestPlan)
            {
                return(TestPlanData.Where(f => f.Key.EqualsText(key, ignoreCase)).Select(f => f.Value).FirstOrDefault());
            }
            else if (type == TestDataType.TestSuite)
            {
                return(TestSuitData.DataList.Where(f => f.Key.EqualsText(key, ignoreCase)).Select(f => f.Value).FirstOrDefault());
            }
            else if (type == TestDataType.TestCase)
            {
                return(CurrentTestCaseData.DataList.Where(f => f.Key.EqualsText(key, ignoreCase)).Select(f => f.Value).FirstOrDefault());
            }

            return(key);
        }
예제 #2
0
        private static void LoadDataBySheetName(string fileName, string sheetName, TestDataType type)
        {
            FileStream       stream      = null;
            IExcelDataReader excelReader = null;

            try
            {
                FileInfo fileInfo = new FileInfo(fileName);
                var      ext      = fileInfo.Extension;
                stream = File.Open(fileName, FileMode.Open, FileAccess.Read);

                if (ext.Equals(".xls", StringComparison.CurrentCultureIgnoreCase))
                {
                    excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
                }
                else if (ext.Equals(".csv", StringComparison.CurrentCultureIgnoreCase))
                {
                    excelReader = ExcelReaderFactory.CreateCsvReader(stream);
                }
                else
                {
                    excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                }

                var rows = excelReader.AsDataSet().Tables[sheetName].Rows;
                //==test plan
                if (type == TestDataType.TestPlan)
                {
                    for (int i = 0; i < rows.Count; i++)
                    {
                        var key   = rows[i].ItemArray.GetValue(0).ToString();
                        var value = rows[i].ItemArray.GetValue(1).ToString();
                        TestPlanData.Add(new TestDataModel {
                            Key = key, Value = value
                        });
                    }
                    return;
                }
                else if (type == TestDataType.Share) //==share data --> skip the 1st row for header
                {
                    for (int i = 1; i < rows.Count; i++)
                    {
                        var key   = rows[i].ItemArray.GetValue(0).ToString();
                        var value = rows[i].ItemArray.GetValue(1).ToString();
                        SharedData.Add(new TestDataModel {
                            Key = key, Value = value
                        });
                    }
                    return;
                }
                else if (type == TestDataType.TestSuite)//==test suite
                {
                    TestCaseDataModel  testCaseData = null;
                    TestDataExtraModel extraData    = null;
                    for (int i = 0; i < rows.Count; i++)
                    {
                        extraData = null;

                        var key = rows[i].ItemArray.GetValue(0).ToString();
                        if (string.IsNullOrEmpty(key))
                        {
                            continue;
                        }

                        var value = rows[i].ItemArray.GetValue(1) == null ? string.Empty : rows[i].ItemArray.GetValue(1).ToString();

                        if (key.EqualsText(TestCaseNameKey, true))
                        {
                            if (testCaseData == null) //==begin a test case
                            {
                                testCaseData = new TestCaseDataModel();
                            }
                            else//next test case
                            {
                                if (TestSuitData.TestCaseDataList == null)
                                {
                                    TestSuitData.TestCaseDataList = new List <TestCaseDataModel>();
                                }

                                TestSuitData.TestCaseDataList.Add(testCaseData.Clone() as TestCaseDataModel);
                                testCaseData = new TestCaseDataModel();
                                continue;
                            }
                        }
                        else if (key.Contains(ExtraDataKey))
                        {
                            if (string.IsNullOrEmpty(value))
                            {
                                continue;
                            }

                            string extraSheetName = value.Split('!').ToList().FirstOrDefault();
                            extraData = new TestDataExtraModel {
                                Key = key, DataExtend = excelReader.AsDataSet().Tables[extraSheetName]
                            };

                            if (testCaseData.DataExtendList == null)
                            {
                                testCaseData.DataExtendList = new List <TestDataExtraModel>();
                            }

                            testCaseData.DataExtendList.Add(extraData.Clone() as TestDataExtraModel);
                            extraData = null;
                            continue;
                        }

                        if (testCaseData == null && string.IsNullOrEmpty(TestSuitData.TestSuiteId)) //==test suite info
                        {
                            if (key.EqualsText(TestSuiteIdKey, true))
                            {
                                TestSuitData.TestSuiteId = value;
                            }

                            if (TestSuitData.DataList == null)
                            {
                                TestSuitData.DataList = new List <TestDataModel>();
                            }

                            TestSuitData.DataList.Add(new TestDataModel {
                                Key = key, Value = value
                            });
                        }
                        else if (testCaseData != null)
                        {
                            if (testCaseData.DataList == null)
                            {
                                testCaseData.DataList = new List <TestDataModel>();
                            }

                            if (key.EqualsText(TestCaseIdKey, true))
                            {
                                testCaseData.TestCaseId = value;
                            }

                            testCaseData.DataList.Add(new TestDataModel {
                                Key = key, Value = value
                            });
                        }
                    }
                    //the latest test case
                    if (testCaseData != null && testCaseData.TestCaseId != string.Empty)
                    {
                        if (TestSuitData.TestCaseDataList == null)
                        {
                            TestSuitData.TestCaseDataList = new List <TestCaseDataModel>();
                        }
                        TestSuitData.TestCaseDataList.Add(testCaseData);
                    }
                    return;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                excelReader.Close();
                stream.Close();
            }
        }
예제 #3
0
 protected BaseBoard()
 {
     DataMember = new TestPlanData();
 }