在集成测试中,我使用一个TestServer
类来为集成测试创建一个测试服务器实例。在RC1中,我使用以下代码实例化了它:
var server = new TestServer(TestServer.CreateBuilder().UseStartup<Startup>());
在RC2上,删除了TestServer.CreateBuilder()。因此,我尝试使用以下代码创建新的TestServer:
var server = new TestServer(new WebHostBuilder().UseStartup<Startup>());
我面临的问题是,在RC2之后,运行时无法解析DI的依赖项,因此它会在Startup类的Configure方法上引发异常。但是,如果我启动实际服务器(而不是测试项目),则系统会启动。引发的异常如下:
System.Exception : Could not resolve a service of type 'ShikashiBot.IShikashiBotManager' for the parameter 'botManager' of method 'Configure' on type 'ShikashiBot.Startup'.
我目前正在将以下软件包用于测试主机: Microsoft.AspNetCore.TestHost": "1.0.0-rc2-final
我需要进行一些更改才能使您的存储库正常工作:
appsettings.sample.json
为appsettings.json
,我想这仅仅是因为它不在源代码管理中。"buildOptions": { "copyToOutput": [ "appsettings.json" ] }
到project.json
IntegrationTests项目中。Verbose
到Debug
你appsettings.json
。但是在此之后,集成测试EndPointsRequiresAuthorization
经历了依赖项注入,对我而言,它失败了,并出现一个异常ShikashiBotManager
,因为我没有设置Postgre DB。
对您来说,在此之前它已经失败了,因为它无法解析IShikashiBotManager
接口,对吗?
您是否可以尝试使用git clean -xfd
(注:未提交的本地更改将被删除)彻底清除本地存储库,然后重新生成并重试?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句