WebApplicationFactory在另一个项目目录中使用Startup.Cs

时间:2019-08-06 16:41:20

标签: c# asp.net-core .net-core

如何自定义WebApplicationFactory以从另一个项目目录使用“启动”?

使用启动程序,从下面的此项目中进行设置。创建集成测试以指向原始应用程序启动。

启动程序和应用程序设置位于此文件夹中, C:\ Test \ Test.WebAPI

new WebHostBuilder()
                .UseContentRoot("C:\\Test\\Test.WebAPI")
                .UseEnvironment("Development")
                .UseConfiguration(new ConfigurationBuilder()
                    .SetBasePath("C:\\Test\\Test.WebAPI")
                    .AddJsonFile("appsettings.json")
                    .Build()).UseStartup<Startup>());

https://fullstackmark.com/post/20/painless-integration-testing-with-aspnet-core-web-api

1 个答案:

答案 0 :(得分:0)

使用的Startup仅基于传递给UseStartup的类型参数之一。您只需引用正确的名称空间即可路由到要使用的类,就像其他任何类型引用一样。它与文件系统或它所在的项目无关(除了最初可能对名称空间有所贡献的那些东西之外)。

还请记住,WebApplicationFactory的类型参数实际上是TEntryPoint。它只是对项目名称空间的引用,并不表示正在使用哪个Startup类。您可以使用Program或项目中的任何类将其替换。