bluealga_vx 2022-05-28 18:48 采纳率: 66.7%
浏览 118
已结题

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

问题遇到的现象和发生背景

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

问题相关代码,请勿粘贴截图

using Microsoft.VisualStudio.TestTools.UnitTesting;

using MyBase;

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
namespace TestProject1
{
[TestClass]
public class UnitTest1
{
[TestMethod]
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的类库。

  • 写回答

3条回答 默认 最新

查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月23日
  • 已采纳回答 6月15日
  • 创建了问题 5月28日

悬赏问题

  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播