2008-10-01 11 views
5

Tôi đang chạy NUnit với dự án có tên AssemblyTest.nunit. Thử nghiệm gọi một hội đồng khác sử dụng lắp ráp log4net. Điều này đang sử dụng phiên bản 2.4.3 nunit với khuôn khổ .net 2.0.Phần cấu hình log4net cho dự án thử nghiệm NUnit

Trong TestFixtureSetup tôi kêu gọi log4net.Config.XmlConfigurator.Configure() và đang nhận được lỗi sau:

 
System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section log4net. (C:\path\to\assembly.dll.config line 7) 

Có cách nào để sửa lỗi này mà không đổi tên tập tin cấu hình để 'AssemblyTest.config' ?

+0

Tôi không quen với .NET nhưng không có lỗi nào ngụ ý đến tôi ít nhất là điều này có liên quan đến tên của tệp cấu hình. Dường như với tôi giống như có sự cố với dòng 7 trong tệp cấu hình của bạn. – TomC

+0

Vâng, đó là lý do tại sao tôi hỏi câu hỏi. Dòng tệp cấu hình hoạt động với tệp được đặt tên theo tên dự án nunit và chính xác cùng văn bản. Cảm ơn cho điểm. –

Trả lời

4

Tạo tệp cấu hình riêng cho log4net với phần tử gốc log4net.

Trong TestFixtureSetup tạo đối tượng FileInfo cho tệp cấu hình này và đặt nó làm đối số cho log4net.Config.XmlConfigurator.Configure().

10

Tôi đã gặp sự cố tương tự vì tôi quên thêm định nghĩa log4net vào phần tử cấu hình configSections.

Vì vậy, nếu bạn muốn đặt log4net -elements vào app.config, bạn cần bao gồm các configSections phần tử (mà nói nơi log4net -elements được định nghĩa) ở phía trên cùng của tập tin cấu hình .

Hãy thử nó như thế này:

<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    <log4net> 
    ... 
    </log4net> 
</configuration> 
+0

Tôi cũng gặp sự cố này với hệ thống kiểm tra Visual Studio –

5

Tôi không biết lý do tại sao các bạn đang bị mắc kẹt trong các tập tin cấu hình, cho nunit nếu bạn thích để xem các bản ghi đang chạy trong cửa sổ Output văn bản trong runner thử nghiệm nunit tất cả các bạn cần làm là sau dòng mã,

BasicConfigurator.Configure(); 

điểm tốt nhất thêm dòng này là các nhà xây dựng của class Test

ví dụ

[TestFixture] 
    public class MyTest 
    { 
     log4net.ILog log = log4net.LogManager.GetLogger(typeof(MyTest)); 

     public MyTest() 
     { 
      BasicConfigurator.Configure(); 
     } 

     [SetUp] 
     public void SetUp() 
     { 
      log.Debug(">SetUp");    
     } 

     [TearDown] 
     public void TearDown() 
     { 
      log.Debug(">TearDown"); 
     } 

     [Test] 
     public void TestNothing() 
     { 
      log.Debug(">TestNothing"); 
     } 
    } 
+0

Ngắn và hoàn hảo! – ShloEmi

+0

Điều này đã biến tất cả các báo cáo nhật ký của tôi thành đầu ra trong bài kiểm tra đơn vị và không yêu cầu làm lại bất kỳ ứng dụng nào thực sự được sử dụng. 1 không có tệp cấu hình! Hoàn hảo! – K0D4