在使用ASP.NET Core进行集成测试期间使用多个环境

时间:2016-03-01 22:14:59

标签: visual-studio-2015 asp.net-core dnx xunit

这是测试项目的launchSettings.json文件:

{
  "profiles": {
    "test": {
      "commandName": "test",
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
  }
}

测试项目依赖于服务器项目,并使用服务器项目Startup类直接初始化测试,如下所示:

Server = new TestServer(TestServer.CreateBuilder().UseStartup<Startup>());
Client = Server.CreateClient();

但由于某种原因,当我在调试器中输入Startup.Configure方法时,env.EnvironmentName是生产。我应该在哪里设置测试.xproj的环境名称?

在相关的说明中,我是否应该在测试项目中拥有Startup类的本地测试版本? The docs似乎暗示......其他应用程序来自何处?他们没有将测试项目显示为在本地拥有appsettings的副本,但我非常确定Startup类(无论是重用还是本地)都需要它。请指教。

2 个答案:

答案 0 :(得分:8)

您可以使用UseEnvironment方法。

Server = new TestServer(TestServer.CreateBuilder().UseEnvironment("Testing").UseStartup<Startup>());

答案 1 :(得分:0)

使用.UseEnvironment(“开发”)将为您提供详细的错误消息等

相关问题