如何解决Ninject.Web.Mvc 使内存测试失败:System.InvalidOperationException:序列不包含元素
这对我来说很奇怪,因此我在这里创建了一个概念证明: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 举报,一经查实,本站将立刻删除。