测试积点老人 发表于 2022-5-30 11:35:18

对带log4net日志输出的类库,C#单元测试异常,log4net初始化异常。

问题遇到的现象和发生背景用一个窗体程序调用类库,可以正常输出,但是用c#的单元测试来调用类库就出错。using Microsoft.VisualStudio.TestTools.UnitTesting;

using MyBase;


namespace TestProject1
{

public class UnitTest1
{

public void TestMethod1()
{
      log4net.Config.XmlConfigurator.Configure(); // log4net

      Class1 c = new Class1();
      c.TestLog();
    }
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyBase
{
public class Class1
{
public void TestLog()
{
LogHelper.WriteSysLog("Class1.TestLog()");
}
}
}
运行结果及报错内容代码:log4net.Config.XmlConfigurator.Configure(); 执行异常,信息如下:System.TypeInitializationException
HResult=0x80131534
Message=The type initializer for 'log4net.Core.LoggerManager' threw an exception.
Source=log4net
StackTrace:
at log4net.Core.LoggerManager.GetRepository(Assembly repositoryAssembly)
at log4net.LogManager.GetRepository(Assembly repositoryAssembly)
at log4net.Config.XmlConfigurator.Configure()
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:58

升级下版本

jingzizx 发表于 2022-5-31 13:32:03

调的方法对吗?

郭小贱 发表于 2022-5-31 15:21:18

这个只能作为拓展知识点来学习了。

kallinr 发表于 2022-5-31 15:37:20

不清楚
页: [1]
查看完整版本: 对带log4net日志输出的类库,C#单元测试异常,log4net初始化异常。