我有一套由MsTest围绕OWIN执行的集成测试,使用OWIN启动方法作为自己的主机。 测试是很简单,请使用以下模式:当我运行在本地机器DEV测试MsTest和OWIN,重复控制器
WebApp.Start<Startup>(url: appAddress);
HttpClient client = new HttpClient();
client.DefaultRequestHeaders
.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.GetAsync(uri).Result;
,他们是绿色的。 当我们在Build Machine中运行来自Visual Studio的测试时,它们是绿色的。 如果他们从队列中运行,前几天,我们开始摆脱OWIN这个恼人的错误:
*** OWIN STARTED ***
{"Message":"An error has occurred.",
"ExceptionMessage":"Multiple types were found that match the controller named 'xxx'.
This can happen if the route that services this request ('odata/v1/{*odataPath}') found multiple controllers defined with the same name but differing namespaces, which is not supported.
The request for 'xxx' has found the following matching controllers:
namespace.V1.Controllers.xxxController
namespace.V1.Controllers.xxxController",
"ExceptionType":"System.InvalidOperationException","StackTrace":" at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage request)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()"}
而且因为我们使用温莎解决控制器和我们还打印出在温莎的注册,这是奇怪的当然,只有一个控制器具有该名称。只有在代码在MsBuild内执行时,我们才会在所有控制器上出现此问题......在Build Machine的Visual Studio或生产环境中,它可以工作。 可能是错误是别的东西,但被OWIN吞噬?
我:
您使用的是哪个版本的owin? – 2015-01-23 01:38:36
最新的应该是2.2 这是一个奇怪的问题,由于配置已重新编译后自动排除 – Raffaeu 2015-01-23 07:50:16
我有与owin 3和nunit相同的问题,但它只发生在其中一个测试项目。 – 2015-01-23 10:55:13