为什么我的 .net core xunit 测试找不到我的 appsettings.json?

Why can't my .net core xunit test find my appsettings.json?

我是 testing/development 的新手。我在 .net 核心中创建了一个 x 单元测试项目,用于使用 selenium 测试我网站的 UI。我的文件结构如下所示

这是我的 appsettings.json:

{
  "Base_Url": "https://pretendurl/",
  "AllowedHosts": "*"
}

这是我的测试class:

using Xunit;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using System;
using Microsoft.Extensions.Configuration;
using System.Configuration;

namespace XUnitTestProject1.UI.Tests
{
    public class HomePageShould
    {
        [Fact]
        public void LoadHomepage()
        {

            using IWebDriver driver = new ChromeDriver();
            var settings = new ConfigurationBuilder()
               .AddJsonFile("appsettings.json")
               .Build();

            var homeUrl = settings["Base_Url"];
            
            driver.Navigate().GoToUrl(homeUrl);

        }
    }
}

我收到此错误:配置文件 'appsettings.json' 未找到并且不是可选的。我的测试项目与我正在测试的系统在一个单独的仓库中。

在VS中更改json文件的'Copy to output folder'属性。需要将其复制到应用程序将 运行.

所在的输出文件夹

您需要更新 XUnitTestProject1.UI.Tests.csproj 才能将您的应用程序设置导出到构建文件夹。

  <ItemGroup>
    <None Update="appsettings.Test.json" CopyToOutputDirectory="PreserveNewest" />
  </ItemGroup>

您应该使用您的测试设置在您的测试项目中重新创建一个单独的 appsettings.Test.json 文件,上面的代码会将其复制到构建文件夹。