2012-01-25 64 views
7

Estoy creando una aplicación en C# que usa com.gargoylesoftware.htmlunit.WebClient para acceder y recuperar información de páginas web.Obteniendo el error "Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl no encontrado" en la prueba de unidad pero no en el programa principal

Mi aplicación funciona muy bien con el proyecto principal, pero cuando intento de construir unidad de pruebas para probar las clases de proyectos que recibo el siguiente error:

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" 

Tratando de crear un cliente Web HtmlUnit en las causas clase de pruebas unitarias este error también

Tengo referencias de proyecto htmlunit-2.7, IKVM.OpenJDK.Core e IKVM.OpenJDK.XML.API tanto en el proyecto principal como en el proyecto que contiene la prueba unitaria.

¿Necesito una referencia de proyecto adicional para ejecutar la prueba de la unidad? ¿Qué podría estar causando este error?

La clase de prueba utiliza Microsoft.VisualStudio.TestTools.UnitTesting;

+0

Katie hizo la respuesta para resolver su problema? –

Respuesta

17

Me encontré con el mismo problema recientemente mientras probaba la misma biblioteca. Encontré que incluir una referencia a IKVM.OpenJDK.XML.Parse.dll resolvió el problema.

+1

Sí, eso funcionó para mí. –

+1

+1 Agregar la referencia me funcionó también. – victorvartan

5

Me sale un problema similar.

Parece que la clase com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl no está cargada, por lo que la fábrica no puede crearla. Agregar esta línea antes de la llamada a la fábrica obliga al ensamblaje a cargarse, y luego la fábrica puede verlo y todo funciona como se espera ...

[email protected] s = new [email protected](); 
+0

Agregar este código funciona bien. VB.Net Dim s As com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl = New com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl() – RicardoBalda

Cuestiones relacionadas