2012-05-02 51 views
0

我无法使用nunit测试我的log4net库。我阅读了Google返回的搜索结果,但无法理解它们。nunit和log4net

这是我得到的错误。

System.IO.FileNotFoundException:未能加载文件或组件 'log4net的,版本= 1.2.10.0,文化=中性 公钥= 692fbea5521e1304' 或它的一个依赖。 系统找不到指定的文件。

在我的nunit测试项目中,我添加了正确的log4net dll参考,其余项目正在使用并添加配置文件,但没有运气。

我的控制台应用程序和使用log4net libaray的测试Web应用程序工作正常。

我似乎只有log4net nunit测试项目的问题。

如何开始使用涉及log4net库的简单nunit测试。

+0

您是否更改过项目输出文件夹?是将参考集的CopyLocal设置为true? – Anton

回答

1

无论你想要测试什么,你都应该接受一个I​​Log。那么你应该嘲笑它,并将它传递给你试图测试的任何东西。 log4net的版本根本不重要。你的测试甚至不应该知道log4net存在。

使用Rhinomocks,这将是:

MockRepository mocks = new MockRepository(); 
ILog mockLog = mocks.DynamicMock<ILog>(); 

或者你可以用存根去:

ILog mockLog = MockRepository.GenerateStub<ILog>(); 
0

检查log4net.dll的Version是否与您的测试项目和测试引用的项目相同(btw最新版本的log4net是1.2.11.0)。同时验证Copy Local设置为true。

如果涉及到log4net库,那么这可能是集成测试,而不是单元测试。

0

仔细检查运行时log4net.dll文件已包含。看起来它无法与您的项目的.NET运行时CLR相匹配。检查应用程序的目标NET版本(项目 - >属性),并确保它与目标版本的log4net.dll相匹配。注意log4net的版本1.2.11包括最高版本为4.0的二进制文件,并且还注意到客户端配置文件版本与完整版本不同,需要他们自己的特定dll文件。