51Testing软件测试论坛

标题: 对带log4net日志输出的类库,C#单元测试异常,log4net初始化异常。 [打印本页]

作者: 测试积点老人    时间: 2022-5-30 11:35
标题: 对带log4net日志输出的类库,C#单元测试异常,log4net初始化异常。
问题遇到的现象和发生背景

用一个窗体程序调用类库,可以正常输出,但是用c#的单元测试来调用类库就出错。

  1. using Microsoft.VisualStudio.TestTools.UnitTesting;

  2. using MyBase;

  3. [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
  4. namespace TestProject1
  5. {
  6. [TestClass]
  7. public class UnitTest1
  8. {
  9. [TestMethod]
  10. public void TestMethod1()
  11. {
  12.         log4net.Config.XmlConfigurator.Configure(); // log4net

  13.         Class1 c = new Class1();
  14.         c.TestLog();
  15.     }
  16. }
  17. }

  18. using System;
  19. using System.Collections.Generic;
  20. using System.Linq;
  21. using System.Text;
  22. using System.Threading.Tasks;

  23. namespace MyBase
  24. {
  25. public class Class1
  26. {
  27. public void TestLog()
  28. {
  29. LogHelper.WriteSysLog("Class1.TestLog()");
  30. }
  31. }
  32. }
复制代码

运行结果及报错内容

代码:log4net.Config.XmlConfigurator.Configure(); 执行异常,信息如下:

  1. System.TypeInitializationException
  2. HResult=0x80131534
  3. Message=The type initializer for 'log4net.Core.LoggerManager' threw an exception.
  4. Source=log4net
  5. StackTrace:
  6. at log4net.Core.LoggerManager.GetRepository(Assembly repositoryAssembly)
  7. at log4net.LogManager.GetRepository(Assembly repositoryAssembly)
  8. at log4net.Config.XmlConfigurator.Configure()
  9. at TestProject1.UnitTest1.TestMethod1() in C:...TestProject1\UnitTest1.cs:line 16
复制代码

内部异常 1:
TypeInitializationException: The type initializer for 'log4net.Util.SystemInfo' threw an exception.

内部异常 2:
FileNotFoundException: Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. 系统找不到指定的文件。

我的解答思路和尝试过的方法

1、检查过,测试程序的同级目录有log4net.config文件;
2、原来用FORM程序,调用类库可以正常输出日志。

我想要达到的结果

希望能够单元测试带有log4net的类库。



作者: qqq911    时间: 2022-5-31 10:30
升级下版本
作者: jingzizx    时间: 2022-5-31 13:32
调的方法对吗?

作者: 郭小贱    时间: 2022-5-31 15:21
这个只能作为拓展知识点来学习了。
作者: kallinr    时间: 2022-5-31 15:37
不清楚




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2