问题描述
这对我来说很奇怪,因此我在这里创建了一个概念证明:https://github.com/osotorrio/WebApiNinjectTests
该应用程序是一个 Web API,在内存中进行了一些简单的测试。您可以在 constructor of the TestFixture file here 中找到测试服务器配置。
这就是问题。如果您并行运行所有测试,则只有一个测试会成功,其余的将失败并显示以下错误消息。
System.Reflection.TargetInvocationException :调用的目标已抛出异常。 system.invalidOperationException : 序列不包含任何元素
第一个奇怪的行为。如果你一个一个地运行测试,所有的测试都会成功。
第二个奇怪的行为。在 NinjectWebCommon (line 69) 中,如果我注释掉过滤器绑定,例如:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IAmSomeServiceService>().To<SomeServiceService>();
// This is adding the Ninject.Web.Mvc.dll to the test project and this is making the tests to fail
// kernel.BindFilter<AdminOnlyFilter>(FilterScope.Controller,0).WhenControllerHas<AdminOnlyAttribute>();
}
注释掉这一行,所有测试都成功并行运行。我看到的唯一不同之处是取消注释该行会将 Ninject.Web.Mvc DLL 添加到测试项目中,从而导致测试失败。
知道出了什么问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)