我有一个验证XML文件的测试用例。 当使用VS2010和.Net 3.5框架时,下面的代码工作得很好,我能够加载XML文件。我的文件是位置是应用程序的源文件夹。
XmlDocument doc = new XmlDocument();
try
{
doc.Load("Terms_and_Conditions.xml");
XmlNode node;
XmlElement root = doc.DocumentElement;
//Select and display the value of the element.
node = root.SelectSingleNode(NodeSelection);
return node.InnerText;
}
catch (Exception ex)
{
throw ex;
}
当我在.Net 4.6.1中运行相同的代码时,文件路径解析为
C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\Terms_and_Conditions.xml
任何人都知道为什么会出现这个问题.Net 4.6.1
答案 0 :(得分:1)
这是因为您的单元测试在测试运行器中运行,该测试运行器位于Common7文件夹中,而不在您的项目bin文件夹中。由于您指定了xml文件的相对路径,程序将在当前文件夹中查找该文件,即Common7文件夹。
答案 1 :(得分:0)
感谢大家的快速帮助。
以下是我用上述链接解决问题的方法。
XmlDocument doc = new XmlDocument();
try
{
var path = System.IO.Directory.GetParent(System.IO.Directory.GetParent(TestContext.CurrentContext.TestDirectory).ToString());
doc.Load("Terms_and_Conditions.xml");
XmlNode node;
XmlElement root = doc.DocumentElement;
//Select and display the value of the element.
node = root.SelectSingleNode(NodeSelection);
return node.InnerText;
}
catch (Exception ex)
{
throw ex;
}