51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1410|回复: 4
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2022-5-30 11:35:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    问题遇到的现象和发生背景

    用一个窗体程序调用类库,可以正常输出,但是用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的类库。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 1521 天

    连续签到: 5 天

    [LV.Master]测试大本营

    2#
    发表于 2022-5-31 10:30:58 | 只看该作者
    升级下版本
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 07:50
  • 签到天数: 2818 天

    连续签到: 6 天

    [LV.Master]测试大本营

    3#
    发表于 2022-5-31 13:32:03 | 只看该作者
    调的方法对吗?
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-10-22 14:23
  • 签到天数: 1007 天

    连续签到: 1 天

    [LV.10]测试总司令

    4#
    发表于 2022-5-31 15:21:18 | 只看该作者
    这个只能作为拓展知识点来学习了。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 08:51
  • 签到天数: 668 天

    连续签到: 6 天

    [LV.9]测试副司令

    5#
    发表于 2022-5-31 15:37:20 | 只看该作者
    不清楚
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 05:45 , Processed in 0.071904 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表