public TestInfoCollection ParseProject(string projectFile) { if (!File.Exists(projectFile)) { throw new ArgumentException(projectFile, "The file does not exits or the 'projectFile' is not valid."); } try { TestInfoCollection collection = new TestInfoCollection(); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(projectFile); XmlElement root = xmldoc.DocumentElement; // Now, handle the "case" nodes XmlNodeList elemList = xmldoc.GetElementsByTagName("test"); for (int i = 0; i < elemList.Count; i++) { XmlNode element = elemList[i]; if (element != null) { XmlTestType filterType = XmlTestType.None; bool bDisplayException = true; bool bVerbose = true; bool bInteractive = false; XmlAttributeCollection attributes = element.Attributes; if (attributes != null && attributes.Count > 0) { XmlAttribute attFilter = attributes["filter"]; if (attFilter != null) { filterType = ParseXmlTestType(attFilter.InnerText); } XmlAttribute attException = attributes["exception"]; if (attException != null) { bDisplayException = Boolean.Parse(attException.InnerText); } XmlAttribute attVerbose = attributes["verbose"]; if (attVerbose != null) { bVerbose = Boolean.Parse(attVerbose.InnerText); } XmlAttribute attInteractive = attributes["interactive"]; if (attInteractive != null) { bInteractive = Boolean.Parse(attInteractive.InnerText); } } XmlNodeList elemFiles = element.SelectNodes("files/file"); if (elemFiles != null) { for (int j = 0; j < elemFiles.Count; j++) { XmlNode xmlFile = elemFiles[j]; if (xmlFile != null) { TestInfo info = new TestInfo(filterType); info.FileName = xmlFile.InnerText; info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = bInteractive; collection.Add(info); } } } XmlNodeList elemDirs = element.SelectNodes("dirs/dir"); if (elemDirs != null) { for (int k = 0; k < elemDirs.Count; k++) { XmlNode xmlDir = elemDirs[k]; if (xmlDir != null) { TestInfo info = new TestInfo(filterType); info.Directory = xmlDir.InnerText; info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = bInteractive; collection.Add(info); } } } } } return collection; } catch (Exception ex) { XmlTestExceptionManager.Publish(ex); return null; } }
public TestInfoCollection ParseProject(string projectFile) { if (!File.Exists(projectFile)) { throw new ArgumentException(projectFile, "The file does not exits or the 'projectFile' is not valid."); } try { TestInfoCollection collection = new TestInfoCollection(); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(projectFile); XmlElement root = xmldoc.DocumentElement; // Now, handle the "case" nodes XmlNodeList elemList = xmldoc.GetElementsByTagName("test"); for (int i = 0; i < elemList.Count; i++) { XmlNode element = elemList[i]; if (element != null) { XmlTestType filterType = XmlTestType.None; bool bDisplayException = true; bool bVerbose = true; bool bInteractive = false; XmlAttributeCollection attributes = element.Attributes; if (attributes != null && attributes.Count > 0) { XmlAttribute attFilter = attributes["filter"]; if (attFilter != null) { filterType = ParseXmlTestType(attFilter.InnerText); } XmlAttribute attException = attributes["exception"]; if (attException != null) { bDisplayException = Boolean.Parse(attException.InnerText); } XmlAttribute attVerbose = attributes["verbose"]; if (attVerbose != null) { bVerbose = Boolean.Parse(attVerbose.InnerText); } XmlAttribute attInteractive = attributes["interactive"]; if (attInteractive != null) { bInteractive = Boolean.Parse(attInteractive.InnerText); } } XmlNodeList elemFiles = element.SelectNodes("files/file"); if (elemFiles != null) { for (int j = 0; j < elemFiles.Count; j++) { XmlNode xmlFile = elemFiles[j]; if (xmlFile != null) { TestInfo info = new TestInfo(filterType); info.FileName = xmlFile.InnerText; info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = bInteractive; collection.Add(info); } } } XmlNodeList elemDirs = element.SelectNodes("dirs/dir"); if (elemDirs != null) { for (int k = 0; k < elemDirs.Count; k++) { XmlNode xmlDir = elemDirs[k]; if (xmlDir != null) { TestInfo info = new TestInfo(filterType); info.Directory = xmlDir.InnerText; info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = bInteractive; collection.Add(info); } } } } } return(collection); } catch (Exception ex) { XmlTestExceptionManager.Publish(ex); return(null); } }
public TestInfoCollection Parse(string[] args) { TestInfoCollection collection = new TestInfoCollection(); // Command line parsing Arguments commandLine = new Arguments(args); // Check if default total test is requested... m_bIsDefault = false; if (commandLine["default"] != null) { m_bIsDefault = true; } // 1. Handle the "proj" option if (commandLine["proj"] != null) { return ParseProject(commandLine["proj"]); } // 2. Handle the display filter option XmlTestType testType = XmlTestType.None; if (commandLine["filter"] != null) { testType = ParseXmlTestType(commandLine["filter"]); } // 3. Handle the display of the exception messages option bool bDisplayException = true; if (commandLine["exception"] != null) { string strException = commandLine["exception"]; strException = strException.ToLower(); bDisplayException = (strException == "true"); } // 4. Handle the verbose display option bool bVerbose = true; if (commandLine["verbose"] != null) { string strVerbose = commandLine["verbose"]; strVerbose = strVerbose.ToLower(); bVerbose = (strVerbose == "true"); } // 4. Handle the interactivity option bool bInteractive = false; if (commandLine["interactive"] != null) { string strInteractive = commandLine["interactive"]; strInteractive = strInteractive.ToLower(); bInteractive = (strInteractive == "true"); if (bInteractive) { TestInfo info = new TestInfo(testType); info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = bInteractive; collection.Add(info); return collection; } } // 5. Handle the files option, if any if (commandLine["files"] != null) { string strFiles = commandLine["files"]; Console.WriteLine(strFiles); string[] strSplits = strFiles.Split(','); for (int i = 0; i < strSplits.Length; i++) { TestInfo info = new TestInfo(testType); info.FileName = strSplits[i].Trim(); info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = false; collection.Add(info); } } // 6. Handle the dirs option, if any if (commandLine["dirs"] != null) { string strDirs = commandLine["dirs"]; string[] strSplits = strDirs.Split(','); for (int i = 0; i < strSplits.Length; i++) { TestInfo info = new TestInfo(testType); info.Directory = strSplits[i].Trim(); info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = false; collection.Add(info); } } return collection; }
public TestInfoCollection Parse(string[] args) { TestInfoCollection collection = new TestInfoCollection(); // Command line parsing Arguments commandLine = new Arguments(args); // Check if default total test is requested... m_bIsDefault = false; if (commandLine["default"] != null) { m_bIsDefault = true; } // 1. Handle the "proj" option if (commandLine["proj"] != null) { return(ParseProject(commandLine["proj"])); } // 2. Handle the display filter option XmlTestType testType = XmlTestType.None; if (commandLine["filter"] != null) { testType = ParseXmlTestType(commandLine["filter"]); } // 3. Handle the display of the exception messages option bool bDisplayException = true; if (commandLine["exception"] != null) { string strException = commandLine["exception"]; strException = strException.ToLower(); bDisplayException = (strException == "true"); } // 4. Handle the verbose display option bool bVerbose = true; if (commandLine["verbose"] != null) { string strVerbose = commandLine["verbose"]; strVerbose = strVerbose.ToLower(); bVerbose = (strVerbose == "true"); } // 4. Handle the interactivity option bool bInteractive = false; if (commandLine["interactive"] != null) { string strInteractive = commandLine["interactive"]; strInteractive = strInteractive.ToLower(); bInteractive = (strInteractive == "true"); if (bInteractive) { TestInfo info = new TestInfo(testType); info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = bInteractive; collection.Add(info); return(collection); } } // 5. Handle the files option, if any if (commandLine["files"] != null) { string strFiles = commandLine["files"]; Console.WriteLine(strFiles); string[] strSplits = strFiles.Split(','); for (int i = 0; i < strSplits.Length; i++) { TestInfo info = new TestInfo(testType); info.FileName = strSplits[i].Trim(); info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = false; collection.Add(info); } } // 6. Handle the dirs option, if any if (commandLine["dirs"] != null) { string strDirs = commandLine["dirs"]; string[] strSplits = strDirs.Split(','); for (int i = 0; i < strSplits.Length; i++) { TestInfo info = new TestInfo(testType); info.Directory = strSplits[i].Trim(); info.Verbose = bVerbose; info.Exception = bDisplayException; info.Interactive = false; collection.Add(info); } } return(collection); }