51Testing软件测试论坛
标题: 对带log4net日志输出的类库,C#单元测试异常,log4net初始化异常。 [打印本页]
作者: 测试积点老人 时间: 2022-5-30 11:35
标题: 对带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的类库。
作者: 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 |