在 .NET 核心的 xunit 上下文中获取 ContentRootPath 或获取 IHostingEnvironment

Getting the ContentRootPath or getting IHostingEnvironment in a xunit context for .NET core

我正在为 .NET 核心(net46 框架)创建 xunit 测试,但在获取应用程序的根路径时遇到问题,因此我可以找到诸如 appsettings.json 之类的内容。

谁能解释一下我如何才能实现以下目标之一:

这可能是一个非常简单的问题,我似乎找不到好的解决方案。

据我所知,在 XUnit 测试中注入 IHostingEnvironment 是不可能的。

这并不理想,但您可以这样做(例如:SetBasePath):

var configuration = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("remoteDeploymentConfig.json")
        .AddUserSecrets()
        .AddEnvironmentVariables()
        .Build();

此解决方案有效,因为如果您要执行 dotnet test,则需要在项目目录本身内执行,因为此处的 test 对应于该项目的 xunit 包。