2012-01-25 22 views
7

Sto costruendo un'applicazione in C# che utilizza com.gargoylesoftware.htmlunit.WebClient per accedere e recuperare informazioni da pagine Web.Errore "Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl non trovato" nel test unitario ma non nel programma principale

La mia applicazione funziona benissimo dal progetto principale, ma quando provo a costruire unit test per verificare le classi del progetto ottengo il seguente errore:

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" 

cercando di creare un WebClient HtmlUnit nelle cause classe di test unità anche questo errore.

Sono presenti riferimenti di progetto htmlunit-2.7, IKVM.OpenJDK.Core e IKVM.OpenJDK.XML.API sia nel progetto principale che nel progetto che contiene il test dell'unità.

È necessario un riferimento di progetto aggiuntivo per l'esecuzione del test dell'unità? Quale potrebbe essere la causa di questo errore?

La classe di test utilizza Microsoft.VisualStudio.TestTools.UnitTesting;

+0

Katie ha la risposta a risolvere il problema? –

risposta

17

Mi sono imbattuto nello stesso problema di recente durante il test della stessa libreria. Ho trovato che includendo un riferimento a IKVM.OpenJDK.XML.Parse.dll risolto il problema.

+1

Sì, quello ha funzionato per me. –

+1

+1 Aggiunta la referenza ha funzionato anche per me. – victorvartan

5

Ho riscontrato un problema simile.

Sembra che la classe com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl non sia caricata e quindi la fabbrica non può crearla. L'aggiunta di questa linea in prima della chiamata alla fabbrica costringe l'assemblea a caricare, e quindi la fabbrica può vederlo e tutto funziona come previsto ...

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

L'aggiunta di questo codice funziona correttamente. VB.Net Dim s As com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl = Nuovo com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl() – RicardoBalda

Problemi correlati