2012-01-25 4 views
7

Tôi đang xây dựng một ứng dụng trong C# sử dụng com.gargoylesoftware.htmlunit.WebClient để truy cập và truy xuất thông tin từ các trang web.Lỗi "Nhà cung cấp com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl không tìm thấy" trong bài kiểm tra đơn vị nhưng không có trong chương trình chính

ứng dụng của tôi chạy tốt từ dự án chính nhưng khi tôi cố gắng xây dựng đơn vị xét nghiệm để kiểm tra các lớp học dự án tôi nhận được lỗi sau:

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" 

Đang cố gắng để tạo ra một WebClient HtmlUnit trong những nguyên nhân lớp đơn vị thử nghiệm lỗi này là tốt.

Tôi có tài liệu tham khảo dự án htmlunit-2.7, IKVM.OpenJDK.Core và IKVM.OpenJDK.XML.API trong cả dự án chính và dự án chứa thử nghiệm đơn vị.

Tôi có cần tham chiếu dự án bổ sung để thử nghiệm đơn vị chạy không? Điều gì có thể gây ra lỗi này?

Lớp kiểm tra sử dụng Microsoft.VisualStudio.TestTools.UnitTesting;

+0

Katie đã giải đáp được vấn đề của bạn? –

Trả lời

17

Tôi đã gặp sự cố tương tự gần đây trong khi kiểm tra cùng một thư viện. Tôi thấy rằng bao gồm một tham chiếu đến IKVM.OpenJDK.XML.Parse.dll đã giải quyết được vấn đề.

+1

Vâng, điều đó có hiệu quả đối với tôi. –

+1

+1 Thêm tham chiếu đã làm việc cho tôi. – victorvartan

5

Tôi đã gặp sự cố tương tự.

Có vẻ như lớp com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl không được tải và do đó nhà máy không thể tạo nó. Thêm dòng này vào trước khi cuộc gọi đến nhà máy buộc lắp ráp tải, và sau đó nhà máy có thể nhìn thấy nó và mọi thứ hoạt động như mong đợi ...

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

Việc thêm mã này hoạt động tốt. VB.Net Dim s Như com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl = New com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl() – RicardoBalda