我收到了以下错误信息:
上述错误出现在我们的构建服务器上的一个单元测试中,但在我的开发机上没有出现。我有7个其他几乎与这个一样的测试,在构建服务器和我的开发机上都通过了,但这是唯一失败的测试。
IAlertManagement接口来自名为“Core”的dll,具体类型来自另一个名为“AlertManagement”的dll。我在单元测试项目中包含了“Core”和“AlertManagement”两个dll作为项目引用。我有7或8个其他相同情况的测试,但这是唯一失败的测试。
任何想法将不胜感激。
Test method: BootStrapperTest.Can_Create_Alert_Management_Object threw exception: Ninject.ActivationException:
Error activating IAlertManagement No matching bindings are available, and the type is not self-bindable.
Activation path:
1) Request for IAlertManagement
Suggestions:
1) Ensure that you have defined a binding for IAlertManagement.
2) If the binding was defined in a module, ensure that the module has been loaded into the kernel.
3) Ensure you have not accidentally created more than one kernel.
4) If you are using constructor arguments, ensure that the parameter name matches the constructors parameter name.
5) If you are using automatic module loading, ensure the search path and filters are correct.
以下是导致异常的测试用例:
[TestInitialize]
public void Initialize()
{
BootStrapper.RegisterTypes();
}
[TestMethod]
public void Can_Create_Alert_Management_Object()
{
IAlertManagement alertManagementService = BootStrapper.Kernel.Get<IAlertManagement>();
Assert.IsNotNull(alertManagementService);
}
//This is the code that gets called in [TestInitialize]
public static void RegisterTypes()
{
if (!initialized)
{
Kernel.Bind(scanner => scanner.FromAssembliesMatching("MyCompany.MyProduct.*")
.SelectAllClasses()
.BindDefaultInterface());
Kernel.Unbind(typeof(IWcfServiceClient<>));
Kernel.Bind(typeof(IWcfServiceClient<>)).ToMethod(ctx =>
(ctx.Kernel.Get(typeof(WcfServiceClientProvider<>).MakeGenericType(ctx.GenericArguments)) as IProvider).Create(ctx));
}
initialized = true;
}
上述错误出现在我们的构建服务器上的一个单元测试中,但在我的开发机上没有出现。我有7个其他几乎与这个一样的测试,在构建服务器和我的开发机上都通过了,但这是唯一失败的测试。
IAlertManagement接口来自名为“Core”的dll,具体类型来自另一个名为“AlertManagement”的dll。我在单元测试项目中包含了“Core”和“AlertManagement”两个dll作为项目引用。我有7或8个其他相同情况的测试,但这是唯一失败的测试。
任何想法将不胜感激。