vai*_*dil 3 c# asp.net-core-mvc .net-core asp.net-core
我正在 .NET Core 中编写一些集成测试,但我无法运行测试,因为连接字符串返回 null。我的代码Startup.cs如下,我确实appsettings.json按照这些答案复制到测试项目中。我错过了什么?
编辑:我想出如何一步通过单元测试,以及环境被设置为生产,即使我明确地设置ASPNETCORE_ENVIRONMENT来development测试和主要项目都。我正在调试模式下构建。我不知道我应该在哪里设置这个。无论哪种方式,应该拉一个值,而不是空-无论是appsettings.development.json和appsettings.production.json有一个字符串,和通用appsettings.json低于(同发展)。
编辑 2:测试项目似乎完全忽略了我设置的任何配置。Startup无论我是否告诉它,它都在运行主项目。我删除了对它的所有引用,它仍在尝试运行它。
Startup.cs:
public IConfigurationRoot Configuration { get; }
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", true, true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MyDatabase")));
}
Run Code Online (Sandbox Code Playgroud)
appsettings.json:
{
"ConnectionStrings": {
"MyDatabase": "Server=localhost;Database=MyDevLocal;Trusted_Connection=True;"
}
}
Run Code Online (Sandbox Code Playgroud)
这对我有用
var builder = new WebHostBuilder()
.UseStartup<Startup>()
.UseSetting("ConnectionStrings:DefaultConnection", /*Your conn string*/)
| 归档时间: |
|
| 查看次数: |
5875 次 |
| 最近记录: |