c# – NServiceBus Test.Initialize()给定键不存在
更新只是更详细地阅读Google群组,显然这是一个应用配置问题.尝试后会更新帖子.
我想知道在尝试单元测试NServiceBus时是否有人知道这个问题. 意识到我下面有两个初始化方法,但这是为了说明我想要做什么.
我相信堆栈跟踪的其他部分是一个抱怨InMemoryPersistence的红鲱鱼.然而,有一个谷歌小组也在谈论这个问题,他们遇到了同样的问题,这让我觉得它更像是一个NServiceBus问题,而不是编码错误. Google群组链接https://groups.google.com/forum/m/#!topic/particularsoftware/424_6KCv6oI 应该提一下这些帖子. https://github.com/Particular/NServiceBus.Testing/issues/20 public static class CustomInit { public static void Init() { //Previous versions of NBUS,specifically 4.6.5 //MessageConventionExtensions.IsEventTypeAction = MessageConfiguration.ForEvents(); //MessageConventionExtensions.IsCommandTypeAction = MessageConfiguration.ForCommands(); //New 5.2.0 how to setup tests Test.Initialize(x => x.AssembliesToScan(GetAssembliesToScan())); Test.Initialize( x => { x.Conventions().DefiningCommandsAs([my namespace]); x.Conventions().DefiningEventsAs([my namespace]); x.AssembliesToScan(GetAssembliesToScan()); }); } private static IEnumerable<Assembly> GetAssembliesToScan() { return new[] { AssemblyFromType<ISomeInterface>() }; } } 解决方法
在
GitHub上提出问题后发现需要包含NServiceBus.Testing作为程序集扫描的一部分.例如:
还应该指出,有关更多信息,我将访问GitHub链接.关于这个问题和解释的更多细节可以在那里找到. public static void Init() { Test.Initialize( x => { x.Conventions().DefiningCommandsAs(x => x.Namespace.Contains("Commands")); x.Conventions().DefiningEventsAs(x => x.Namespace.Contains("Events")); x.AssembliesToScan(GetAssembliesToScan()); }); } private static IEnumerable<Assembly> GetAssembliesToScan() { return new[] { AssemblyFromType<ISomeInterface>(),Assembly.LoadFrom("NServiceBus.Testing.dll") }; } 关键点是这个Assembly.LoadFrom(“NServiceBus.Testing.dll”) 干杯,DS. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |