2016-11-22 4 views
0

У меня есть тестовый пример, который проверяет XML-файл. При использовании VS2010 с картой .Net 3.5 приведенный ниже код работает отлично, я могу загрузить XML-файл. Мой файл - это папка источника приложения.XMLDocument.Load() Не загружает файл во время запуска тестового проекта

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; 
     } 

Решение Папка: enter image description here

Когда я запускаю тот же код в .NET 4.6.1, путь к файлу решает C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\Terms_and_Conditions.xml

Кто-нибудь есть идея, почему этот вопрос с .Net 4.6 .1

+0

https://github.com/nunit/nunit/issues/1072 –

+0

Thank. эта ссылка помогла. –

ответ

1

Это происходит из-за того, что ваши юнит-тесты выполняются в тестовом бегуне, который находится в папке Common7, а не в папке bin. Поскольку вы указываете относительный путь к xml-файлу, программа будет искать файл в текущей папке, которая является папкой Common7.

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; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^