.NET Core xUnit项目无法识别app.config或appsettings.json

时间:2018-10-28 14:53:30

标签: .net .net-core xunit appsettings

我有一个.NET Core Web API项目,该项目已经有一个appsettings.json文件,但是我想将相同的内容添加到我的相应xUnit项目中。

我在项目project files的根目录中添加了一个appsettings.json文件

appsettings.json的内容是

{
    "DatabaseType" : "MySql",
    "ConnectionStrings" : {
    "CycleTrackingDb": "connection_string_here"
    }
}

我遇到的问题是,当我调用ConfigurationManager.ConnectionStrings["CycleTrackingDB"]ConfigurationManager.AppSettings["DatabaseType"]时,它返回为NULL或空字符串。

我使用xUnit指南https://xunit.github.io/docs/shared-context.html的Class Fixtures部分设置xUnit。

这是我的数据库修复工具

public class DatabaseFixture : IDisposable
{
    public Context Context { get; private set; }

    public DatabaseFixture()
    {
        Context = new Context(DatabaseOptionsFactory.DbContextOptions);
    }

    public void Dispose()
    {
    }
}

我所有的测试类都将从该类继承:

[Collection("Database collection")]
public class CycleTargetTrackerTest
{
    protected Context Context { get; }

    public CycleTargetTrackerTest()
    {
        Context = new DatabaseFixture().Context;
    }
}

DatabaseOptionsFactory只是一个静态类,应该在appsettings.json文件的设置中读取,其静态构造函数的前两行如下,它将使用输出来设置上下文

var databaseType = (DatabaseType)Enum.Parse(typeof(DatabaseType), Config.Configuration.Settings["DatabaseType"]);
var connectionString = ConfigurationManager.ConnectionStrings["CycleTrackingDB"];

这些都返回空。

编辑 我设法将其读取到appsettings.json文件中。我在这里遵循了本指南:Read appsettings json values in .NET Core Test Project,但是现在我想做的就是以与System.Configuration.ConfigurationManager相同的方式加载设置。有办法吗?

0 个答案:

没有答案