在 .NET 核心的 xunit 上下文中获取 ContentRootPath 或获取 IHostingEnvironment
Getting the ContentRootPath or getting IHostingEnvironment in a xunit context for .NET core
我正在为 .NET 核心(net46 框架)创建 xunit 测试,但在获取应用程序的根路径时遇到问题,因此我可以找到诸如 appsettings.json 之类的内容。
谁能解释一下我如何才能实现以下目标之一:
获取 IHostingEnvironment 实例
获取包含xunit测试的.NET项目的绝对路径,这样我就可以自己实现IHostingEnvironment了。
这可能是一个非常简单的问题,我似乎找不到好的解决方案。
据我所知,在 XUnit 测试中注入 IHostingEnvironment 是不可能的。
这并不理想,但您可以这样做(例如:SetBasePath):
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("remoteDeploymentConfig.json")
.AddUserSecrets()
.AddEnvironmentVariables()
.Build();
此解决方案有效,因为如果您要执行 dotnet test
,则需要在项目目录本身内执行,因为此处的 test
对应于该项目的 xunit 包。
我正在为 .NET 核心(net46 框架)创建 xunit 测试,但在获取应用程序的根路径时遇到问题,因此我可以找到诸如 appsettings.json 之类的内容。
谁能解释一下我如何才能实现以下目标之一:
获取 IHostingEnvironment 实例
获取包含xunit测试的.NET项目的绝对路径,这样我就可以自己实现IHostingEnvironment了。
这可能是一个非常简单的问题,我似乎找不到好的解决方案。
据我所知,在 XUnit 测试中注入 IHostingEnvironment 是不可能的。
这并不理想,但您可以这样做(例如:SetBasePath):
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("remoteDeploymentConfig.json")
.AddUserSecrets()
.AddEnvironmentVariables()
.Build();
此解决方案有效,因为如果您要执行 dotnet test
,则需要在项目目录本身内执行,因为此处的 test
对应于该项目的 xunit 包。