Получение ошибки «Поставщик com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl не найден» в модульном тесте, но не в основной программе - PullRequest
8 голосов
/ 25 января 2012

Я создаю приложение на C #, которое использует com.gargoylesoftware.htmlunit.WebClient для доступа и получения информации с веб-страниц.

Мое приложение работает нормально из основного проекта, но когда я пытаюсь построить модульные тесты дляпри тестировании классов проекта я получаю следующую ошибку:

FactoryConfigurationError
Message "Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl not found"
Source  "IKVM.OpenJDK.XML.API"  string
StackTrace  "   at javax.xml.parsers.DocumentBuilderFactory.newInstance()
at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.loadConfiguration(Reader configurationReader)
at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.loadConfiguration()
at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration..ctor(BrowserVersion )
at com.gargoylesoftware.htmlunit.javascript.configuration.JavaScriptConfiguration.getInstance(BrowserVersion browserVersion)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine..ctor(WebClient webClient)
at com.gargoylesoftware.htmlunit.WebClient.init(BrowserVersion , ProxyConfig )
at com.gargoylesoftware.htmlunit.WebClient..ctor(BrowserVersion browserVersion)
at com.gargoylesoftware.htmlunit.WebClient..ctor()
at GWT.HeadlessBrowser..ctor() in C:\\hg\\EXE\\GWT\\HeadlessBrowser.cs:line 57
at TestGWT.ProgramTest.TestLogInProcessForGWT() in C:\\hg\\TestGWT\\ProgramTest.cs:line 115"

Попытка создать HtmlUnit WebClient в классе модульного теста также вызывает эту ошибку.

У меня есть ссылки на проект htmlunit-2.7,IKVM.OpenJDK.Core и IKVM.OpenJDK.XML.API как в основном проекте, так и в проекте, содержащем модульный тест.

Нужна ли дополнительная ссылка на проект для запуска модульного теста?Что может быть причиной этой ошибки?

Тестовый класс использует Microsoft.VisualStudio.TestTools.UnitTesting;

Ответы [ 2 ]

17 голосов
/ 23 февраля 2012

Я столкнулся с той же проблемой совсем недавно, когда тестировал ту же библиотеку.Я обнаружил, что включение ссылки на IKVM.OpenJDK.XML.Parse.dll решило проблему.

6 голосов
/ 26 апреля 2013

Я столкнулся с подобной проблемой.

Кажется, класс com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl не загружен, и поэтому фабрика не может его создать. Добавление этой строки перед вызовом фабрики заставляет сборку загружаться, и затем фабрика может увидеть ее, и все работает как положено ...

com.sun.org.apache.xerces.@internal.jaxp.SAXParserFactoryImpl s =   new  com.sun.org.apache.xerces.@internal.jaxp.SAXParserFactoryImpl();
...