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

标签 .net-core xunit

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

有人可以解释我如何实现以下目标之一:

  • 获取 IHostingEnvironment
  • 的实例
  • 检索包含 xunit 测试的 .NET 项目的绝对路径,这样我就可以自己实现 IHostingEnvironment。

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

    最佳答案

    据我记得在 XUnit 测试中注入(inject) IHostingEnvironment 是不可能的。

    这并不理想,但您可以执行以下操作(例如:SetBasePath):

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

    此解决方案有效,因为如果您要执行 dotnet test您需要从项目目录本身作为 test 执行此操作这里对应那个项目的xunit包。

    关于.net-core - 在 .NET 核心的 xunit 上下文中获取 ContentRootPath 或 IHostingEnvironment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913925/

    相关文章:

    c# - Mock HttpClientFactory 使用 Moq Framework 创建模拟的 HttpClient

    javascript - Mocha 在完成所有测试之前结束测试运行

    c# - 如何在 XUnit 中使用 AddTransient 方法注入(inject) 'Microsoft.Extensions.Configuration.IConfiguration'

    f# - 为什么使用 Xunit 的 F# 在断言字符串相等时需要类型信息

    asp.net-core - Kestrel + .NET Core (Windows) 的推荐身份/用户

    c# - 使用不同的卡结账时,Stripe 正在创建重复的客户

    mvvm - 带有Prism的MVVM中的DispatcherTimer?

    c# - 将 OpenCover 与 xUnit 集成

    ASP.NET Core publish 在 published 文件夹中产生大量 DLL,为什么?

    asp.net-core - NancyFx 与 .Net Core 不兼容