0

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

这是我得到的错误。

System.IO.FileNotFoundException:无法加载文件或程序集“log4net,版本=1.2.10.0,文化=中性,PublicKeyToken=692fbea5521e1304”或其依赖项之一。该系统找不到指定的文件。

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

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

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

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

4

3 回答 3

1

无论您尝试测试什么,您都应该接受 ILog。然后你应该模拟它并将它传递给你试图测试的任何东西。log4net 的版本根本不重要。你的测试甚至不应该知道 log4net 的存在。

使用 Rhinomocks,这将是:

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

或者,您可以使用存根:

ILog mockLog = MockRepository.GenerateStub<ILog>();
于 2012-05-03T20:33:26.400 回答
0

检查Version您的测试项目和测试引用的项目的 log4net.dll 是否相同(顺便说一句,log4net 的最新版本是 1.2.11.0)。还要验证Copy Local是否设置为 true。

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

于 2012-05-02T07:39:13.283 回答
0

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

于 2012-05-27T17:00:10.670 回答