nunit and log4net
本文关键字:log4net and nunit | 更新日期: 2023-09-27 18:32:47
我无法使用 nunit 测试我的 log4net 库。我阅读了谷歌返回的搜索结果,但无法理解它们。
这是我得到的错误。
System.IO.FileNotFoundException : 无法加载文件或程序集 'log4net, 版本=1.2.10.0, 区域性=中性, PublicKeyToken=692fbea5521e1304' 或其依赖项之一。这 系统找不到指定的文件。
在我的 nunit 测试项目中,我添加了对其他项目正在使用的正确 log4net dll 的引用,并添加了配置文件,但没有运气。
使用 log4net libaray 的我的控制台应用程序和测试 Web 应用程序工作正常。
我似乎只有log4net nunit测试项目的问题。
如何开始涉及 log4net 库的简单 nunit 测试。
你应该在你尝试测试的任何内容中接受 ILog。 然后你应该模拟它并将其传递给你试图测试的任何内容。 log4net的版本根本不重要。 你的测试甚至不应该知道log4net的存在。
使用犀牛,这将是:
MockRepository mocks = new MockRepository();
ILog mockLog = mocks.DynamicMock<ILog>();
或者,您可以使用存根:
ILog mockLog = MockRepository.GenerateStub<ILog>();
检查 log4net.dll 的Version
对于您的测试项目和测试引用的项目是否相同(顺便说一句,log4net 的最新版本是 1.2.11.0)。还要验证Copy Local
是否设置为 true。
如果你涉及log4net库,那么这可能是集成测试,而不是单元测试。
仔细检查您包含的运行时 log4net.dll 文件。它似乎无法匹配项目的 .NET 运行时 CLR。检查应用的目标 NET 版本(项目 -> 属性),并确保它与 log4net.dll 的目标版本匹配。注意 log4net 的 1.2.11 版包括 4.0 版之前的二进制文件,并且还注意客户端配置文件版本与完整版本不同,需要它们自己的特定 dll 文件。