Проверка XmlSchemaSet внутри модульного теста - PullRequest
0 голосов
/ 21 марта 2020

У меня есть библиотека c# для проверки XML. Внутри библиотеки я использую следующий код для проверки XML в отношении XSD.

 XmlSchemaSet schemaSheet = new XmlSchemaSet();
 schemaSheet.ValidationEventHandler += new ValidationEventHandler(XSDValidationHandler); 

 string[] xsdFiles = GetSchemas();
 foreach (string file in xsdFiles)
 {
      Stream fs = GetSchemaResource(anXsd); <---Get a XSD that is in a embedded resource
      var schema = XmlSchema.Read(fs, null);
      schemaSheet.Add(schema);
 }  
 schemaSheet.Compile();

Если использовать эту DLL с веб-сайта, все работает нормально. Я могу добавить более 50 схем в XmlSchemaSet и не вызывать никаких ошибок в XSDValidationHandler. Весь процесс занимает меньше секунды.

Я создаю проект модульного теста для проверки DLL. Когда я вызываю библиотеку из теста и код выполняет в первый раз строку schemaSheet.Add (schema); .... требуется около 30 секунд, чтобы добавить XSD в схему. Когда заканчивается и go для добавления следующей схемы у меня возникают ошибки, возникающие в XSDValidationHandler (расположение схемы не найдено и другие подобные).

Почему у меня возникает эта проблема? Разве библиотека не должна работать одинаково как с веб-проектом, так и с тестовым проектом?

Другое дело ... Если я отключаю сетевое соединение, когда тест переходит к строке schemaSheet.Add (схема) ; в первый раз не занимает 30 секунд ... но у меня все еще возникают ошибки в XSDValidationHandler.

Метод schemaSet.Add пытается подключиться где-нибудь? или что-то скачать?

Спасибо.

...